[PHP]probleme de code upload

Résolu
nhea Messages postés 55 Statut Membre -  
nhea Messages postés 55 Statut Membre -
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.
Configuration: Windows vista et XP
Linux Ubuntu

5 réponses

  1. Anonyme
     
    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
  2. le père
     
    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
  3. nhea Messages postés 55 Statut Membre
     
    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
  4. le père
     
    il faut enlever le print_r($_FILES);
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. nhea Messages postés 55 Statut Membre
     
    Merci ca marche a meirveil
    0