2012-04-10 44 views
13

Tôi gặp khó khăn khi sử dụng $_FILEScách kiểm tra xem trường tệp có trống không?

Tôi muốn kiểm tra xem nó có trống hay không và nếu không trống thì không nên thử tải lên tệp. Làm cách nào để kiểm tra điều này?

+0

http://php.net/filesize – zerkms

+0

Tham khảo hướng dẫn sử dụng ... http://php.net/manual/en/features.file-upload.php Ngoài ra, định nghĩa của bạn về "trống" là gì? Tập tin 0? Không có tệp nào được chọn để tải lên? – Lekensteyn

+0

Không có tệp nào được chọn, ý của tôi là –

Trả lời

22
if($_FILES["file"]["error"] != 0) { 
//stands for any kind of errors happen during the uploading 
} 

cũng có

if($_FILES["file"]["error"] == 4) { 
//means there is no file uploaded 
} 
13

này nên làm việc

if (! empty($_FILES)) {...} 
+0

Điều này đã giúp tôi kiểm tra thời tiết trang đã được gọi mà không cần đăng một tệp. Hầu hết các giải pháp khác mong đợi chỉ mục 'tệp' có mặt và đưa ra một thông báo. – Aviator

1
if(!empty($_FILES['myFileField'])) { 
    // file field is not empty.. 
} else { 
    // no file uploaded.. 
} 
7

Những câu trả lời khác không làm việc cho tôi. Vì vậy, tôi gửi giải pháp của tôi:

if($_FILES['theFile']['name']=='') 
{ 
    //No file selected 
} 
1

câu hỏi này là trùng lặp nhưng câu trả lời của bạn là is_uploade_file() chức năng.

5

Bạn có thể sử dụng giá trị UPLOAD_ERR_NO_FILE:

function isset_file($file) { 
    return (isset($file) && $file['error'] != UPLOAD_ERR_NO_FILE); 
} 

if(isset_file($_FILES['input_name'])) { 
    // It's not empty 
} 

Cập nhật: Kể từ khi gửi $ _FILES [ 'input_name'] có thể ném một Thông Báo

function isset_file($name) { 
    return (isset($_FILES[$name]) && $_FILES[$name]['error'] != UPLOAD_ERR_NO_FILE); 
} 

if(isset_file('input_name')) { 
    // It's not empty 
} 
5

Đây là những gì làm việc cho tôi:

if ($_FILES['theFile']['tmp_name']!='') { 
    // do this, upload file 
} // if no file selected to upload, file isn't uploaded. 
Các vấn đề liên quan