Page 1 sur 1

fin inattendu dans mon code php

Posté : 26 mai 2015, 16:54
par R4N7OINE
Bonjour,
Voilà mon problème:
J'ai écrit un code pour permettre à mon serveur de récupérer un fichier envoyé par un client sauf que après avoir été chercher sur internet je n'ai toujours pas trouvé la solution à mon problème . Voici mon code :
<?php
if ($_FILES[ 'tinyrank' ] [ 'error' ] > 0) $erreur = "erreur lors du transfert";
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' );
$extension_upload = strtolower( strrchr($_FILES[ 'tinyrank' ] [ 'name' ], '.') );
if ( in_array($extension_upload,$extensions_valides) ) echo "Extension correcte";
$nomFichier = $_FILES[ 'tinyrank' ][ 'name' ] ;
$newNomFichier = 'tinyrank';
rename($nomFichier, $newNomFichier);
$resultat = move_uploaded_file($_FILES[ 'tinyrank' ]['tmp_name'],"../image/);
if ($resultat) echo 'good';
?>
Merci d'avance pour vos réponse.

Re: fin inattendu dans mon code php

Posté : 26 mai 2015, 17:04
par tof73
je pense que ces modifs sont nécessaires :
//rename($nomFichier, $newNomFichier);
$resultat = move_uploaded_file($_FILES[ 'tinyrank' ]['tmp_name'],"../image/$newNomFichier");

Re: fin inattendu dans mon code php

Posté : 26 mai 2015, 17:11
par Ryle
Comme le montre la coloration syntaxique du code, il te manque une guillemet dans le move_uploaded_file après "..image/
C'est pour cela que php génère une erreur, puisqu'il considère que tout ce qui suit (jusqu'à la prochaine guillemet qu'il ne trouve pas) est dans ta chaine.

Ceci étant, comme l'indique tof73, il faudrait également virer le rename (qui ne sert à rien puisque le fichier n'a pas encore été récupéré du répertoire temporaire d'upload) et préciser le nom que tu veux donner au fichier lorsque tu le déplaces avec le move_uploaded_file.

Re: fin inattendu dans mon code php

Posté : 26 mai 2015, 17:12
par R4N7OINE
Merci beaucoup, grâce à ces modifs mon code marche correctement :))))

Re: fin inattendu dans mon code php

Posté : 26 mai 2015, 17:14
par R4N7OINE
Mais alors où je met le rénale qui me sert à avoir un nom spécifique pour le fichier optenu?

Re: fin inattendu dans mon code php

Posté : 26 mai 2015, 21:36
par Ryle
En fait, le fichier est uploadé dans un répertoire temporaire avec un nom temporaire ($_FILES[ 'tinyrank' ]['tmp_name'])

La fonction move_upload_file te permet de déplacer le fichier uploadé depuis le répertoire temporaire vers le répertoire de ton choix, mais elle permet également de nommer le fichier (puisque tu indiques le nom du répertoire et du fichier quand tu le déplaces).

Il n'y a donc aucun intérêt à utiliser la fonction rename() dans ce cas ci :)