2010-09-19 121 views
2

我有一個上傳文件的php表單,並且所有文件都能正常工作,而且極限大小設置爲7340032字節(7Mbs),並且工作正常,但是當我嘗試上傳大於500kbs的圖像時,第一個如果:爲什麼圖像在上傳時返回filesize = 0?

if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0){ 

它說圖像大小爲每次,爲什麼會發生這種情況? post_max_size的php.ini值是15M,upload_max_filesize是10M。

+0

你確定'input'文件的'name'是'userfile'嗎? – 2010-09-19 01:43:10

+0

可以將php上傳臨時文件的分區只剩下<500kb空間嗎? – Fanis 2010-09-19 01:48:49

+0

執行print_r($ _ FILES)進行調試。 – Evert 2010-09-19 01:58:49

回答

1

檢查上傳文件的大小是否非零不是檢查上載是否成功的正確方法。那裏有['error']參數。不完整的上傳文件仍然有一個非零大小,但不應該被處理。一個更好的檢查方法是:

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if ($_FILES['userfile']['error'] !== UPLOAD_ERR_OK) { 
     die("File upload error: {$_FILES['userfile']['error']}"); 
    } 
    ... process file here ... 
} 

錯誤代碼常數defined here

+0

毫米顯然我不得不重啓,因爲由於某種原因WAMP沒有得到新的upload_max_filesize,但是你發佈的內容實際上幫助我弄清楚了,謝謝:) – Tsundoku 2010-09-19 02:18:39