2012-04-10 3 views
13

Мне сложно с помощью $_FILESКак проверить, пустое ли поле файла?

Я хочу проверить, пуст он или нет, и если он не пуст, он не должен пытаться загрузить файл. Как это проверить?

+0

http://php.net/filesize – zerkms

+0

Проконсультируйтесь с руководством ... http://php.net/manual/en/features.file-upload.php Кроме того, каково ваше определение "empty"? Размер файла 0? Файл не выбран для загрузки? – Lekensteyn

+0

Нет выбранного файла, что я имею в виду –

ответ

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

также есть

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

Это должно работать

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

Это сработало для меня, чтобы проверить, что страница была вызвана без публикации файла. Большинство других решений ожидают, что индекс «файл» будет присутствовать и выдать уведомление. – Aviator

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

другие ответы не работает для меня. Так я отправляю мое решение:

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

Вы можете использовать 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 
} 

Обновлено: Поскольку отправка $ _FILES [ 'ИМЯ_ВЫХОДА'] может бросить Уведомление

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

Вот что работал me:

if ($_FILES['theFile']['tmp_name']!='') { 
    // do this, upload file 
} // if no file selected to upload, file isn't uploaded. 
Смежные вопросы