[RESOLU] Problème taille max move_uploaded_file

Petit nouveau ! | 3 Messages

12 déc. 2016, 12:56

Bonjour,

J'ai un soucis avec cette portion de code qui est pourtant simpliste.
Tant que le fichier uploadé est plus petit que 2Mb, pas de problème.
Mon php info me dit que le fichier php.ini est ici: /etc/php/7.0/apache2/php.ini
Je l'ai édité comme ceci:

Code : Tout sélectionner

memory_limit = 128M max_execution_time=3600 post_max_size = 128M upload_max_filesize= 128M
Mon code:

Code : Tout sélectionner

case 6: //confirm ajout PPP $Desc_PPPPPP=$_POST['Desc_PPPPPP']; $Id_CategoriesPPPPPP=$_POST['Id_CategoriesPPPPPP']; $file_name = $_FILES['fichier']['name']; $file_size =$_FILES['fichier']['size']; $file_tmp =$_FILES['fichier']['tmp_name']; $uploaddir ='/var/www/html/Docs/PPPPPP/'.$Id_CategoriesPPPPPP.'/'; $relatif ='/Docs/PPPPPP/'.$Id_CategoriesPPPPPP.'/'.$file_name; $uploadfile = $uploaddir.$file_name; if (move_uploaded_file($file_tmp,$uploadfile)) { $cond='"'.$Id_CategoriesPPPPPP.'","'.$relatif.'","'.$Desc_PPPPPP.'"'; $db = mysqli_connect("localhost","intranet","pearljam","intranet"); $sql = 'INSERT INTO PPPPPP (Id_CategoriesPPPPPP,Nom_PPPPPP,Desc_PPPPPP) VALUES ('.$cond.')'; $req = $db->query($sql); echo 'la copie du fichier '.$file_name.' a réussi dans le répertoire '.$uploaddir; mysqli_close ($db); echo '<meta http-equiv="refresh" target="ppp" content="0;URL=pppppp.php?categorie='.$Id_CategoriesPPPPPP.'">'; } else { echo 'la copie du fichier '.$file_name.' a échoué pour le répertoire '.$uploaddir.', les autres infos sonts tmp='.$file_tmp.' et la taille est: '.$file_size.' et le code d erreur est:'.$_FILES['fichier']['error'].'<br> nom complet:'.$uploadfile.'<br>'; print_r ($_FILES); } break;
me renvoie systèmatiquement ceci quand le fichier dépasse les 2MB. On dirait qu'il ne sait pas voir la taille du fichier uploadé...

la copie du fichier circopimmo.pdf a échoué pour le répertoire /var/www/html/Docs/PPPPPP/10/, les autres infos sonts tmp= et la taille est: 0 et le code d erreur est:2
nom complet: /var/www/html/Docs/PPPPPP/10/circopimmo.pdf
Array ( [fichier] => Array ( [name] => circopimmo.pdf [type] => [tmp_name] => [error] => 2 [size] => 0 ) )

Vous avez une idée, ça fait des heures que je retourne tout.

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 déc. 2016, 13:05

salut,
tu as indiqué une taille dans le html et tu la dépasses (parfois c'est bien une question de taille :)~ )

http://php.net/manual/fr/features.file- ... errors.php
UPLOAD_ERR_FORM_SIZE
Valeur : 2. La taille du fichier téléchargé excède la valeur de MAX_FILE_SIZE, qui a été spécifiée dans le formulaire HTML.
ton message d'erreur indique bien le code d'erreur deux.

perso je me suis fait une fontion pour avoir un message plus clair
<?php
function up_error($code,$nom) {
	switch ($code) {
		case UPLOAD_ERR_OK : $erreur = 'Pas d'erreur';$valid = true;break;
		case UPLOAD_ERR_INI_SIZE : $erreur = 'Votre fichier `'.$nom.'` dépasse la taille maximale d'upload autorisée par PHP( '.get_cfg_var('upload_max_filesize').' )';$valid = false;break;
		case UPLOAD_ERR_FORM_SIZE : $erreur = 'Votre fichier dépasse la taille maximale demandée par le Webmestre';$valid = false;break;
		case UPLOAD_ERR_PARTIAL : $erreur = 'Le fichier n'a été que partiellement téléchargé. !!!';$valid = false;break;
		case UPLOAD_ERR_NO_FILE : $erreur = 'Aucun fichier téléchargé !!!';$valid = false;break;
		case UPLOAD_ERR_NO_TMP_DIR : $erreur = 'Un dossier temporaire est manquant.'
		case UPLOAD_ERR_CANT_WRITE : $erreur = 'Échec de l'écriture du fichier sur le disque.'
		case UPLOAD_ERR_EXTENSION : $erreur = 'Une extension PHP a arrété l'envoi de fichier. PHP ne propose aucun moyen de déterminer quelle extension est en cause. L'examen du phpinfo() peut aider.';
		default : $erreur = 'L'upload a rencontré une erreur inconnue !!!';$valid = false; break;
	}
 
	$return[] = $valid;
	$return[] = $erreur;
	return $return;
}
?>
@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

12 déc. 2016, 13:21

Pffffffffff, à force de chercher un peu partout, j'ai pas vérifié le post... Idiot que je suis.

Merci pour ton aide ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 déc. 2016, 13:59

de rien

pense à cliquer sur résolus (a gauche du titre) lorsque c'est le cas :)

(bon la je le fait pour toi, grand prince :mrgreen: )

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

12 déc. 2016, 14:09

merci