2016-02-12 46 views
1

我想在生產服務器上使用php函數move_uploaded_file,並且出現了一些奇怪的錯誤。有些文件可能是,有些文件無法上傳。一切工作在本地主機上。move_uploaded_file不工作(php,nginx)

// test for errors 
if (!empty($file['errors'])) { 
    log('ERR uploadImages: errors occured'); 
} else { 
    log('OK uploadImages: errors empty'); 
} 

// test is dir 
if (!is_dir($path)) { 
    log("ERR uploadImages: is_dir {$path}"); 
} else { 
    log('OK uploadImages: is_dir'); 
} 

// test on writable 
if (!is_writable($path)) { 
    log('ERR uploadImages: is_writable'); 
} else { 
    log('OK uploadImages: is_writable'); 
} 

// upload this file 
$uploaded = move_uploaded_file($file['tmp_name'], $filepath); 

// is uploaded? 
if ($uploaded) { 
    log('OK uploadImages: uploaded'); 
} else { 
    log('ERR uploadImages: not uploaded'); 
} 

我的日誌:

OK uploadImages: errors empty 
OK uploadImages: is_dir 
OK uploadImages: is_writable 
ERR uploadImages: not uploaded 

某些文件的上傳,有些不是。 在例如:

jpeg 1.65MB - ERR 
jpeg 1.48MB - ERR 
jpeg 1.2MB - ERR 
jpeg 0.9MB - OK 
jpg 0.5MB - OK 
mp3 6MB - ERR 

所以我已經檢查的php.ini

post_max_size 100M 
upload_max_filesize 600M 
+1

的post_max_size必須大於或等於的upload_max_filesize(http://php.net/manual/en/ini.core.php#ini.post-max-size) – DTH

+0

記得重新啓動您的HTTP服務器在修改ini – DTH

+0

之後您是否在文件夾中有可用空間來存放複製文件? – newman

回答

0

NGINX有他自己的配置設置爲1MB - client_max_body_size 1M;

解決