[PHP]probleme de code upload

Résolu/Fermé
nhea Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 22 décembre 2009 - 22 août 2009 à 02:34
nhea Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 22 décembre 2009 - 22 août 2009 à 15:27
Bonjour,
j'ai un probleme de code(de débutant), voici mon code:



html:
<form action="cible_envoi.php" method="POST" enctype="multipart/form-data">
<p>
Formulaire d'envoi de fichier :<br />
<input type="file" name="monfichier" /><br />
<input type="submit" value="Envoyer le fichier" />
</p>
</form>



PHP:
<?php
if(isset($_FILES['monfichier'])){
$target = "/image/".basename($_FILES['monfichier']['name']) ;
print_r($_FILES);

if(move_uploaded_file($_FILES['monfichier']['tmp_name'],$target)) echo "L envoie a reussi.";
}
?>

il me marque :
Array ( [monfichier] => Array ( [name] => test.gif [type] => image/gif [tmp_name] => C:\Program Files\EasyPHP 3.0\tmp\phpEDBE.tmp [error] => 0 [size] => 12826 ) )
Warning: move_uploaded_file(/image/test.gif) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files\EasyPHP 3.0\www\cible_envoi.php on line 6

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Program Files\EasyPHP 3.0\tmp\phpEDBE.tmp' to '/image/test.gif' in C:\Program Files\EasyPHP 3.0\www\cible_envoi.php on line 6



Quel est le probleme dans mon script de débutant.
A voir également:

5 réponses

Si j'ai bien compris, le nom du dossier visé est incorete ou introuvable^^ Regarde bien.... C'est tout ce qu eje peux te dire ;-)
0
Bonjour

Oui, le dossier de destination est presque certainement incorrect.
$target est un nom de fichier, autrement dit un nom du point de vue de windows (C:\...) et non pas une adresse de site (http://...)
/image/ , pour windows, est un nom qui commence par / et c'est donc un répertoire à la racine du disque courant. J'ai bien dit du disque courant, pas de ton site. Autrement dit, c'est C:\image\
Comme je suis prêt à parier que ce répertoire n'existe pas, mais que tu veux que ce soit un sous-répertoire de ton site, il faut que tu ajoutes au début le nom du répertoire où se trouve ton site :
$target = $_SERVER['DOCUMENT_ROOT']."/image/".basename($_FILES['monfichier']['name']) ;
0
nhea Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 22 décembre 2009
22 août 2009 à 13:40
Merci ca marche grache a $_SERVER['DOCUMENT_ROOT']. mais vous savz comment faire pour que sa marque juste "L'envoie a réussi" en non Array ( [monfichier] => Array ( [name] => test.gif [type] => image/gif [tmp_name] => C:\Program Files\EasyPHP 3.0\tmp\php58EC.tmp [error] => 0 [size] => 12826 ) ) L envoie a reussi.
0
il faut enlever le print_r($_FILES);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhea Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 22 décembre 2009
22 août 2009 à 15:27
Merci ca marche a meirveil
0