[RESOLU] Input File Traitement

Eléphanteau du PHP | 11 Messages

05 févr. 2013, 11:55

Bonjour j'ai un problème lord du déplacement de mon fichier --"
Je sais pas du tout d'ou ça viens déjà 2 jours que je cherche
<?PHP

	$maxsize=1048576; //Taille maximum acceptée

	$name = $_FILES['file']['name'];//Le nom original du fichier.
	$type = $_FILES['file']['type'];//Le type du fichier. 
	$size = $_FILES['file']['size'];//La taille du fichier en octets.
	$route_temp = $_FILES['file']['tmp_name'];//L'adresse vers le fichier uploadé dans le répertoire temporaire.
	$error = $_FILES['file']['error'];//Le code d'erreur, qui permet de savoir si le fichier a bien été uploadé.

	$nom_fichier = $_POST['titre'];

	if ($error > 0)
		{ echo "<span style='color:red'>Erreur lors du transfert  </span><br />" ;}
	else{ echo "<span style='color:green'>Le transfert c'est bien deroule  </span><br />";}

	if ($_FILES['file']['size'] > $maxsize)
		{echo "<span style='color:red'>Le fichier est trop gros  </span><br />";}
	else
		{echo "<span style='color:green'>La taille du fichier est valide </span> <br />";}

	$extensions_valides = array( 'pdf','doc','odt','jpeg','docx','txt',''); //Liste des extensions acceptées
	//1. strrchr renvoie l'extension avec le point (« . »).
	//2. substr(chaine,1) ignore le premier caractère de chaine.
	//3. strtolower met l'extension en minuscules.
	$extension_upload = strtolower(  substr(  strrchr($_FILES['file']['name'], '.')  ,1)  );
	if ( in_array($extension_upload,$extensions_valides) )
		{ echo "<span style='color:green'>Extension correcte </span><br />";}
	else
		{ echo "<span style='color:red'>Extension incorrecte </span><br />";}

	//Déplacer le fichier :
	//si le fichier existe déjà il est écrasé !

	$nom_fichier .= ".".$extension_upload;
	echo "$nom_fichier<br />";

	$resultat = move_uploaded_file($route_temp,"/home/web-devis/public_html/uploads/$nom_fichier");
	if ($resultat) 
		{echo "<span style='color:green'>Transfert reussi :D</span><br />";}
	else
		{echo "<span style='color:red'>Echec lors du deplacement du fichiers:(</span><br />";}

	echo "Name = $name <br/>";
	echo "Route Temporaire = $route_temp <br />";
	echo "chemindufichier/".$nom_fichier; ?>

Je n'ai peut pas bien compris le fonctionnement sur php manuel , je sais pas du tout comment traiter mon probléme actuellement j'ai une erreur sur le déplacement du fichier ...

Résultat :
Le transfert c'est bien deroule :D
La taille du fichier est valide :D
Extension correcte :D

.
Echec lors du deplacement du fichiers:(
Name =
Route Temporaire =
chemindufichier/.

L'emplacement de déplacement est bien sur correcte ainsi que les droits sur les fichiers / Aucun Warning PHP

Eléphant du PHP | 180 Messages

05 févr. 2013, 12:14

Bonjour,

LE problème vient pas de :
,"/home/web-devis/public_html/uploads/$nom_fichier");
il faudrait je pense
,"/home/web-devis/public_html/uploads/".$nom_fichier);

Eléphanteau du PHP | 11 Messages

05 févr. 2013, 12:26

non les double quote me permettent de faire ça.

Bon en faite j'ai résolut mon problème mais je n'ai aucune idée de comment j'ai fait ...

Je redonne mon code on sais jamais ça peut servir.
<?PHP

	$maxsize=1048576; //Taille maximum acceptée

	$name = $_FILES['file']['name'];//Le nom original du fichier.
	$type = $_FILES['file']['type'];//Le type du fichier. 
	$size = $_FILES['file']['size'];//La taille du fichier en octets.
	$route_temp = $_FILES['file']['tmp_name'];//L'adresse vers le fichier uploadé dans le répertoire temporaire.
	$error = $_FILES['file']['error'];//Le code d'erreur, qui permet de savoir si le fichier a bien été uploadé.

	$nom_fichier = $_POST['titre'];

	if ($error > 0)
		{ echo "<span style='color:red'>Erreur lors du transfert </span><br />" ;}
	else{}

	if ($_FILES['file']['size'] > $maxsize)
		{echo "<span style='color:red'>Le fichier est trop gros :( </span><br />";}
	else
		{}
	$extensions_valides = array( 'pdf','doc','odt','jpeg','docx','txt','');
	$extension_upload = strtolower(  substr(  strrchr($_FILES['file']['name'], '.')  ,1)  );
	if ( in_array($extension_upload,$extensions_valides) )
	{}
	else
	{ echo "Une erreur c'est produite durant l'upload de votre charte graphique";}
    $nom_fichier = $name;
	$resultat = move_uploaded_file($route_temp,"/home/web-devis/public_html/uploads/$nom_fichier");
	if ($resultat) 
	{
		$link = "http://web-devis.avanim-prod.com/uploads/".$nom_fichier ;
	}
	else
	{	
		echo "Une erreur c'est produite durant l'upload de votre charte graphique";
	}
	?>
Il y a des if vide c'est par ce que j'ai des tests perso dedans .