Bonjour,
je rencontre un probléme avec is_uploaded_file(), elle me retourne false lorsque que le fichier depasse une certaine taille. J'ai lu un topic concernant ce probléme mais je ne parvient pas a trouver le beug. (http://www.developpez.net/forums/sho...d.php?t=272398)
La variable max_allowed_packed a été modifié a 70M dans my.ini.
J'ai aussi modifié upload_max_filesize à 70M ainsi que post_max_size dans php.ini.
fonction transfertArchive() :
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
75
76
77
78 <HTML> <HEAD></HEAD> <BODY> <H2><center><u>AJOUTER UN DOCUMENT ARCHIVE</u></center></H2> <?php include ("transfertArchive.php"); if ( isset($_FILES['fic']) ) { transfertArchive($_FILES); } include ("connexion.php"); // On indique que l'on va envoyer des donnees grace au formulaire ci-dessous echo "<form enctype=multipart/form-data action=# method=post>"; $ReqSql = "SELECT * FROM type_archive"; $ReqSql = mysql_query($ReqSql) or die("Erreur SQL : <br>".$ReqSql); echo "<b>Type de document Archivé : </b>"; $_POST['motcle']; $_POST['resume']; $_POST['rangee']; $_POST['date']; $_POST['cd']; $_POST['type']; // On alimente la liste deroulante des types echo "<SELECT name=type>"; echo "<option>".$_POST['type']."</option>"; while($val=mysql_fetch_array($ReqSql)) { echo "<option>".$val['libelle_archive']."</option>\n"; } echo "</SELECT>"; // On alimente la liste deroulante des allées $ReqSql = "SELECT * FROM allee_archive"; $ReqSql = mysql_query($ReqSql) or die("Erreur SQL : <br>".$ReqSql); echo "<br><br><b>Allee : </b>"; // On alimente la liste deroulante des types echo "<SELECT name=allee>"; echo "<option>".$_POST['allee']."</option>"; while($val=mysql_fetch_array($ReqSql)) { echo "<option>".$val['libelle_allee']."</option>\n"; } echo "</SELECT>"; // **** Formulaire invisible permmettant de fixer la taille max du fichier echo "<input type=hidden name=MAX_FILE_SIZE value=250000000 />"; echo "<BR><br><b>Etagére :</b>"; echo "<input type=text size=5 name=etagere value=".$_POST['etagere']."><BR>"; echo "<BR><b>Rangée :</b>"; echo "<input type=text size=5 name=rangee value=".$_POST['rangee']."><BR>"; echo "<BR><b>Date d'archivage numérique :</b>"; echo "<input type=text size=10 name=date value=".$_POST['date']."><BR>"; echo "<BR><b>Numéro de CD :</b>"; echo "<input type=text size=5 name=cd value=".$_POST['cd']."><BR><br>"; echo "<br><b>Veuillez saisir un ou plusieurs mot(s) clé(s) (10 MOTS AU MAXIMUM) permettant de rechercher ce document : </b>"; echo "<br><b>Les mot clés seront séparés par des points virgules (;) : </b><br>"; echo "<input type=text size=60 name=motcle value=".$_POST['motcle']."><BR><br>"; echo "<br><b>Saisissez un court resumé de ce document : </b>"; echo "<BR><TEXTAREA name=resume rows=4 cols=60>".$_POST['resume']."</TEXTAREA><BR>"; ?> <br><b>Selectionner le fichier a enregister : </b><br> <!-- Pemet de selectionner un fichier par l'intermediaire d'une fenetre : "Parcourir..." --> <input type="file" name="fic" size=25 /><br><br> <center><input type="submit" value="Valider"> <input type="reset" value="Annuler"></center> </FORM> </BODY> </HTML>
Merci de votre aide !
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143 <?php ini_set('memory_limit', 8000000); // en octets set_time_limit(600); // en secondes // Fonction pour stocker le fichier function transfertArchive($FILE) { include ("connexion.php"); $description=@$_POST['motcle']; $resume=@$_POST['resume']; $allee=@$_POST['allee']; $etagere=@$_POST['etagere']; $rangee=@$_POST['rangee']; $date=@$_POST['date']; $cd=@$_POST['cd']; $type=@$_POST['type']; if($type==null) { echo "<SCRIPT LANGUAGE=JavaScript>"; echo "alert('Erreur, le type de document n\'est pas renseigné !')"; echo "</SCRIPT>"; return false; } if($description==null) { echo "<SCRIPT LANGUAGE=JavaScript>"; echo "alert('Erreur, les mots clés n\'ont pas été remplis !')"; echo "</SCRIPT>"; return false; } if($resume==null) { echo "<SCRIPT LANGUAGE=JavaScript>"; echo "alert('Erreur, le résumé n\'est pas remplis correctement !')"; echo "</SCRIPT>"; return false; } $ret = false; $fic_blob = ''; $fic = 0; $fic_type = ''; $fic_nom = ''; $taille_max = 70000000; $ret = is_uploaded_file ($_FILES['fic']['tmp_name']); if ( !$ret ) { echo "<SCRIPT LANGUAGE=JavaScript>"; echo "alert('Erreur, aucun fichier selectionné !')"; echo "</SCRIPT>"; return false; } else { // Le fichier a bien été reçu $fic_taille = $_FILES['fic']['size']; // On test la taille du fichier if ( $fic_taille > $taille_max ) { echo "Trop gros !"; return false; } // On recup le type de fichier $fic_type = $_FILES['fic']['type']; // On recup le nom du fichier $fic_nom = $_FILES['fic']['name']; // On test si le fichier est deja present dans la BDD par rapport au nom $req = "SELECT fic_nom FROM document_doc_archive;"; $req = mysql_query ($req) or die (mysql_error ()); while($val=mysql_fetch_array($req)) { if($val['fic_nom']==$fic_nom){ echo "<SCRIPT LANGUAGE=JavaScript>"; echo "alert('Erreur, le nom de ce fichier est deja present dans la base !')"; echo "</SCRIPT>"; return false; } } // On recup le dernier identifiant du document $req = "SELECT max(id_doc) FROM document_doc_archive;"; $req = mysql_query ($req) or die (mysql_error ()); $max=mysql_fetch_array($req); if($max['max(id_doc)']==null) $max=1; else $max=$max['max(id_doc)']+1; //On recup le id_acte corresopndant au type de document $req= "SELECT id_archive FROM type_archive WHERE libelle_archive='".$type."';"; $req = mysql_query ($req) or die (mysql_error ()); $numArchive=mysql_fetch_array($req); /**** $_FILES['fic']['tmp_name'] ***** permet de recup temporairement le fichier dans ***** un repertoire sur le server ***** On ne peut passer le contenu d'un fichier dans une variable ***** On utilise FILE_GET_CONTENTS ****/ $fic_blob = file_get_contents ($_FILES['fic']['tmp_name']); //On change le format de la date en YYYY-MM-JJ list($jours, $mois, $an) = split("[-./]",$date); $date=$an."-".$mois."-".$jours; $req = "INSERT INTO document_doc_archive VALUES(". $max.", '". $fic_nom."', '". $fic_taille."', '". $fic_type."', '". addslashes ($fic_blob)."','". $description."', '". $resume."', '". $allee."', '". $etagere."', '". $rangee."', '". $date."', '". $cd."', '". $numArchive['id_archive']. "');"; $ret = mysql_query ($req) or die (mysql_error ()); echo "<SCRIPT LANGUAGE=JavaScript>"; echo "alert('Opération réussi, ducument enregistré !')"; echo "</SCRIPT>"; return true; } } ?>
Partager