[PHP] move_upload_file() toujours FALSE

Bonjour,

J'ai un problème pour envoyer un fichier sur un serveur apache.

Donc j'ai utilisé un formulaire pour récupérer mon fichier, puis je veut l'envoyer sur mon serveur via la commande "move_upload_file()" si je ne me trompe pas.

Mais cette fonction me retourne toujours FALSE, sauriez-vous quel en est la cause ?

Voici mon code.

<?php
 
 if(isset($_POST['Envoyerdat']))
 { 
    $content_dir = "/home/h059730/nastran_test/";
    
    foreach($_FILES as $fichier) 
    { 
        $input_name = $_FILES['dat']['name'];
        $tmp_file = $_FILES['dat']['tmp_name'];
        
        if( !is_uploaded_file($tmp_file)) 
        {
            echo"File not found"; 
        }
        else 
        { 
            $name_file = $input_name;
            $final_upload = $content_dir . $name_file;
            
            echo "<br>TMP : $tmp_file<br>DIR : $content_dir<br>NAME : $name_file<br>FIN : $final_upload<br><br>";
            
            if( move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
            { 
                echo"Fichier $name_file uploadé avec succes<br />"; 
            }
            else
            {
                echo "File upload failed"; 
            }
        } 
    }
 } 
 else
 {					
    echo "<TABLE BORDER=\"0\">
    <form ENCTYPE=\"multipart/form-data\" method='POST' action='$_PHP_SELF' name=\"formdat\">
    <TR>
        <TH><b><u>Fichier</b></u> <input type='file' name=\"dat\" value=\"\"></TH>
        <TH><input type='submit' name=\"Envoyerdat\" value=\"Envoyer\"></form></TH>
    </TR>
    </TABLE>";
 }
 
 ?>


Voici ce qui est retourné sur la page.
TMP : /tmp/php2KXMyq
DIR : /home/h059730/nastran_test/
NAME : test.dat
FIN : /home/h059730/nastran_test/test.dat

File upload failed 


Merci d'avance à ceux qui ce remuront les méninges :)

Alexandre.
Configuration: Windows XP Internet Explorer 6.0

4 réponses

  1. Je te suggère de faire un print_r($_FILES), tu devrais comprendre ton erreur en visualisant comment se présente le tableau.
    1. Et ça m'indique quoi de précis ?

      Array ( [dat] => Array ( [name] => test.dat [type] => text/plain [tmp_name] => /tmp/phpwgPk8n [error] => 0 [size] => 10 ) ) 
      1. Je pensais en fait que tu faisais de l'upload multiple, car tu utilises un foreach.

        Donc, je me suis trompé, mais ton foreach ne sert strictement à rien.

        Sinon, est-ce que les droits sont ok dans le répertoire de destination ?

        Ton error_reporting est bien à E_ALL ?
        1. Oups, le foreach, j'ai copié la mauvaise partie, parce que j'ai 2 zones d'upload, seul le foreach est rajouté pour le moment :P

          Le Repertoire à les droits en 777 ;)

          Qu'est-ce que le Error_reporting pourrais modifier ? Je le change quand même ;)