2010-02-08 5 views
1

J'ai un problème lors du déplacement d'un fichier téléchargé dans un répertoire local. Lors de l'exécution du code suivant, la sortie est toujours "fichier de téléchargement d'erreur". Il semble toujours ne pas remplir la condition de la fonction 'move_uploaded_media' et par conséquent $ result n'est pas défini?Chargement de fichier PHP, le fichier ne se déplace pas vers le répertoire local

Y a-t-il des erreurs flagrantes?

<?php 

$page_title = 'Admin | Multimedia Portfolio'; 

include('includes/admin_header.html'); 

if(isset($_POST['submitted'])) 
{ 
    $uploadDir = 'files/'; 

    $fileName = $_FILES['userfile']['name']; 
    $tmpName = $_FILES['userfile']['tmp_name']; 
    $fileSize = $_FILES['userfile']['size']; 
    $fileType = $_FILES['userfile']['type']; 

    $filePath = $uploadDir . $fileName; 

    $result = move_uploaded_file($tmpName, $filePath); 
    if (!$result) { 
     echo "Error uploading file"; // Here is were the it always gets caught 
     exit; 
    } 

    require_once('mysql_connect.php'); 

    if(!get_magic_quotes_gpc()) 
    { 
     $fileName = addslashes($fileName); 
     $filePath = addslashes($filePath); 
    } 

    $query = "INSERT INTO files (name, size, type, path) VALUES ('$fileName', '$fileSize', '$fileType', '$filePath')"; 

    mysqli_query($dbc, $query) or die('Error, query failed : ' . mysql_error()); 

    mysqli_close($dbc); 

    echo "<br>Files uploaded<br>"; 

    } 

?> 

<div id="content-wrap"> 

<h1>Upload Media</h1> 

<div id="content"> 

    <form method="post" action="upload.php" encytype="multipart/form-data"> 

    <fieldset> 

     <div class="entry"> 

       <label>Which media <span class="highlight">file</span> would you like to upload?</label> 
       <input type="file" name="userfile" id="userfile" size="30" /> 

      </div> 

       <fieldset id="button"> 
       <input type="submit" value="Register" /> 
       <input type="hidden" name="submitted" value="TRUE" /> 
      </fieldset> 

     </fieldset> 

    </form> 

</div> 

</div> 

<?php 

include('includes/admin_footer.html'); 

?> 

Répondre

5

Je ne sais pas s'il y a plus, mais vous avez encytype au lieu de enctype dans votre <form>.

+0

fantastique! Merci beaucoup, j'ai regardé la partie PHP de cela pendant des heures, quel plonker. Merci encore pour la réponse très très rapide. – Ronnie

1

Vous pouvez également effectuer une vérification is_uploaded_file() sur le fichier temporaire, juste pour être sûr ...

Questions connexes