Я создал форму с 3 <input type="file"/>
Я вижу, что я получаю массив с array(name=>"")
.
Поэтому я проверяю, есть if ($_FILE["myfilename"]["name"]=="")
.
Это работает, но для меня это кажется довольно необычным.
Мне было интересно, есть ли лучший способ проверить, установлен ли вход файла или нет?
Существует: is_uploaded_file()
. При работе с загруженными файлами вы всегда должны использовать его (и его кузен move_uploaded_file()
) по соображениям безопасности.
Лучший способ, предполагая, что вы используете недавний PHP (4.2+), – проверить, что:
$_FILE['myfilename']['error'] === UPLOAD_ERR_OK
Если это правда, загрузка работала, вы можете увидеть список других возможных значений здесь
Вы можете использовать пустой, чтобы проверить, является ли переменная пустой или нет, но решение Pekka лучше всего подходит
if (empty($_FILE["myfilename"]["name"]))
Если вы проверяете, что, если установлена переменная, вы можете использовать isset
Попробуй это:
if($_FILES["uploadImg"]['name'][0] != ''){ //echo 'file attached'; }else{ //echo 'no file attached'; }
Это работает для меня …