j'ai le code suivant
pour me permete de gerer les documents (fichier) electronique crées dans une base de données accessibel via le intranet/internet. mais il ne fonctionne pas correctement et le fichier de fichier est en caractere spéciaux.
le fichier ajouter_doc_form.php
le fichier ajout_document.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 <?php include('../connexion.inc.php'); ?> <html> <head> <title>Ajouter un Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="../lien.css" rel="stylesheet" type="text/css"> </head> <body marginheight="40" bgcolor="#fffcd9" leftmargin="30"> <form action="ajout_document.php" method="POST" enctype="multipart/form-data"> <?php echo "<center>"; echo "<span class=style2>- Ajouter un document-</span><br><br><br>"; ?> <fieldset> <legend>Gestion des Informations sur le document</legend> <table> <tr> <td> <span class="style4">Nom du Document</span> </td> <td> <input type="text" name="nom_doc"> </td> </tr> <tr><td>Titre du Document</td> <td><input type="text" name="titre_doc" id="titre_doc" /></td></tr> <tr> <td> <span class="style4">Date : </span> </td> <td> <?php echo "<select name=\"jour\">"; echo "<option value=\"0\"></option>"; for($i=1;$i<32;$i++) echo "<option value=\"$i\">$i</option>"; echo "</select> "; echo "<select name=\"mois\"> "; echo "<option value=\"0\"></option>"; for($i=1;$i<13;$i++) echo "<option value=\"$i\">$i</option>"; echo "</select> "; echo "<select name=\"annee\">"; echo "<option value=\"0\"></option>"; for($i=2000;$i<2020;$i++) echo "<option value=\"$i\">$i</option>"; echo "</select>"; ?> </td> </tr> <tr><td height="8"></td></tr> <tr> <td><span class="style4">Description</span></td> <td> <textarea name="description_doc"></textarea> </td> </tr> <tr><td>Fichier du Document</td> <td><input type="file" name="document" id="document" /></td></tr> <tr><td>Auteur du Document</td> <td><input type="text" name="auteur_doc" id="auteur_doc" /></td></tr> </table> </fieldset> <div align="center"><input type ="submit" value="Enregistrer"> <input name="Réinitialiser" type ="reset" value="Annuler"> </div> </form> </body> </html> <? //mysql_close(); ?>
lorsque j'excute le premier formulaire alors le deuxieme doit me permettre d"inserrer les donneés dans ta table
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 <?php include("../connexion.inc.php"); ?> <html> <head> <title>Ajout un document </title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="../lien.css" rel="stylesheet" type="text/css"> </head> <body bgcolor="#fffcd9" marginheight="25" leftmargin="25"> <?php /* //récupération des données à inserrer if(isset($_POST['validation'])) { //Indique si le fichier a été téléchargé if(!is_uploaded_file($_FILES['image']['tmp_name'])) echo 'Un problème est survenu durant l opération. Veuillez réessayer !'; else { //liste des extensions possibles $extensions = array('/pdf', '/doc', '/docx', '/xlsx','/xls','/ppt'); //vérifie si l'extension est dans notre tableau if(!in_array($extension, $extensions)) echo 'Vous devez uploader un fichier de type pdf, doc,docx, ppt,xls,xlsx.'; else { //on définit la taille maximale define('MAXSIZE', 300000); if($_FILES['image']['size'] > MAXSIZE) echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets'; else { */ //$id_doc=$_POST["id_doc"]; $nom_doc=$_POST["nom_doc"]; $titre_doc=$_POST["titre_doc"]; $description_doc=$_POST["description_doc"]; $d=$_POST['jour']; $m=$_POST['mois']; $y=$_POST['annee']; $date_creat=$y.'-'.$m.'-'.$d; if($d==0) $date=NULL; //Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les données binaires contiennent des //caractères spéciaux. //$image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name'])); $file_doc= mysql_escape_string(file_get_contents($_FILES ['file_doc']['tmp_name'])); //récupère la chaîne à partir du dernier / pour connaître l'extension $extension = strrchr($_FILES['file_doc']['type'], '/'); //$extension=$_POST['extension']; $auteur_doc=$_POST['auteur_doc']; //requete de mise à jour $requete="insert into document (id_doc, nom_doc,titre_doc, description_doc, date_creat, file_doc, extension, auteur_doc ) values ('', '".$nom_doc."', '".$titre_doc."', '".$description_doc."', '".$date_creat."', '".$file_doc."', '".$extension."','".auteur_doc."')"; $resultat=mysql_query($requete) or die(mysql_error()); if($resultat) echo("<span class=\"style4\">L'ajout à été correctement effectuée</span>") ; else echo("<span class=\"style4\">L'ajout à échouée</span>") ; // bouton de retour echo "<br><br>"; echo "<form>"; echo "<input type='button' value=\"Retour\" onclick=\"window.location='ajouter_sinistre_form.php';\">"; echo "</form>"; //mysql_close(); /* } } } } */ ?> </body> </html>
alors les erreurs suivants:
Undefined index: file_doc à la ligne
Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty
Code : Sélectionner tout - Visualiser dans une fenêtre à part $file_doc= mysql_escape_string(file_get_contents($_FILES ['file_doc']['tmp_name']));
dans la table, il me fait dans le champs file_doc: [BLOB - 0o]
Merci de m"aider
Partager