2014-02-27 62 views
-1

使用Dreamweaver CS6時,我在上傳文件時遇到了問題。在php中上傳文件時出錯

錯誤是 「無效文件」

這是我的代碼:

<?php 
    $allowedExts = array("gif", "jpeg", "jpg", "png"); 
    $temp = explode(".", $_FILES["file"]["name"]); 
    $extension = end($temp); 
    if ((($_FILES["file"]["type"] == "image/gif") 
     || ($_FILES["file"]["type"] == "image/jpeg") 
     || ($_FILES["file"]["type"] == "image/jpg") 
     || ($_FILES["file"]["type"] == "image/pjpeg") 
     || ($_FILES["file"]["type"] == "image/x-png") 
     || ($_FILES["file"]["type"] == "image/png")) 
     && ($_FILES["file"]["size"] < 20000) 
     && in_array($extension, $allowedExts)) 
     { 
     if ($_FILES["file"]["error"] > 0) 
     { 
      echo "Error: " . $_FILES["file"]["error"] . "<br>"; 
     } 
     else 
     { 
      echo "Upload: " . $_FILES["file"]["name"] . "<br>"; 
      echo "Type: " . $_FILES["file"]["type"] . "<br>"; 
      echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>"; 
      echo "Stored in: " . $_FILES["file"]["tmp_name"]; 
     } 
     } 
     else 
     { 
     echo "Invalid file"; 
     } 
?> 
+0

聖鉬壞格式 – Populus

+0

什麼'回聲$ _FILES [ 「文件」] [「類型」];'顯示這種情況何時發生? – AbraCadaver

+0

你的代碼還有很多實例會轉到「無效文件」語句。您應該將您的測試(文件類型,大小,擴展名)拆分爲單獨的塊,以瞭解其失敗的位置。 – Populus

回答

0

嘗試這樣:

if ($_FILES["file"]["error"]== 0) { 

    $upload_dir = dirname(__FILE__) . "/photos/"; 

    if (file_exists($upload_dir)) { 
     if (is_writable($upload_dir)) { 
      $target = $upload_dir; 
      $newName=$_SESSION['theUsername']; 
      $target = $target . basename($newName); 
      $moved = move_uploaded_file($_FILES['file']['tmp_name'], "$target"); 
     } else { 
      echo 'Upload directory is not writable<br>'; 
     } 
    } else { 
     echo 'Upload directory does not exist.<br>'; 
    } 
}