2015-02-09 66 views
0

將zip文件上傳到我的服務器時出現問題。 每次都會失敗move_uploaded_file函數。我不明白這個問題。文件夾權限爲777,文件大小約爲2 Mb。使用POST請求在php中上傳文件

<html> 
    <body> 

    <form action="../API/upload_zip.php" method="post" enctype="multipart/form-data"> 
     Select image to upload: 
     <input type="file" name="fileToUpload" id="fileToUpload"> 
     <input type="submit" value="Upload Zip" name="submit"> 
    </form> 

    </body> 
</html> 

-

<?php 
    $target_dir = "../uploads/"; 
    $machineID="H725"; 
    $path=$target_dir.$machineID; 
    if (!file_exists($path)) 
    { 
     if(!mkdir($path, 0777, true)) die('Failed to create folders 1...'); 

     chmod($path, 0777); 
    }  

    $pathWithData= $path."/".date("Y_m_d_h_i"); 
    if (!file_exists($pathWithData)) 
    { 
     if(!mkdir($pathWithData, 0777, true)) die('Failed to create folders 2...'); 

     chmod($pathWithData, 0777); 
    } 

    $final_path = $pathWithData ."/". basename($_FILES["fileToUpload"]["name"]); 
    echo "PATH: ".$final_path."<br>"; 


    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $final_path)) 
    { 
     echo "<br>The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
    } 
    else 
    { 
     echo "<br>Sorry, there was an error uploading your file."; 
    } 
?> 
+0

您是否獲得許可被拒絕的錯誤還是其他什麼東西?另外,它是否發生在一個小文件上,例如10kb? – 2015-02-09 18:12:39

+0

你有錯誤報告? – AbraCadaver 2015-02-09 18:14:14

+0

這是$ final_path「../uploads/H725/2015_02_09_09_26/Archive.zip」的內容,是正確的,並且在服務器上創建這兩個文件夾沒有問題 – Paolo 2015-02-09 20:29:14

回答

0

只是可以肯定的,但你的主機有一個file_uploads = On,對不對?檢查php.ini文件或創建一個phpinfo();

另外,嘗試呼應你$ _FILESvar_dump($_FILES); [錯誤]應該是0,如果有在上傳沒有問題的權利。這些都是返回錯誤常量:

UPLOAD_ERR_OK: 0 
UPLOAD_ERR_INI_SIZE: 1 
UPLOAD_ERR_FORM_SIZE: 2 
UPLOAD_ERR_NO_TMP_DIR: 6 
UPLOAD_ERR_CANT_WRITE: 7 
UPLOAD_ERR_EXTENSION: 8 
UPLOAD_ERR_PARTIAL: 3 

在php.ini中,更改這些值:

upload_max_filesize = 100M 
post_max_size = 100M 
+0

file_uploads已打開,我已將最大文件大小增加到150Mb。這是var_dump($ _ FILES)的內容:array(1){[「fileToUpload」] => array(5){[「name」] => string(11)「Archive.zip」[「type」] = > string(0)「」[「tmp_name」] => string(0)「」[「error」] => int(1)[「size」] => int(0)}} – Paolo 2015-02-09 20:30:46

+0

所以問題出在這裏UPLOAD_ERR_INI_SIZE 值:1;上傳的文件超出了php.ini中的upload_max_filesize指令。謝謝! – Paolo 2015-02-09 20:38:06

+0

你能告訴我什麼php.ini的選項,我必須改變大文件? – Paolo 2015-02-09 20:53:37