Upload файла. Проверка заполения поля формы
<form name=\"name\" enctype=\"multipart/form-data\" action=\"script.php\" method=\"post\">
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"51200\">
<input type=\"file\" size=\"40\" name=\"my_file\" value=\"\">
А также в форме есть другие поля типа text, обязательные и по желанию.
В скрипте мне надо проверить, грузит ли юзер файл.
Если грузит, обработать этот файл, потом проложить скрипт.
Не грузит - продолжить скрипт.
Делаю так:
if ( empty ($_FILES['my_file']['name']) )
{
// ничего не делаем
}
else
{
// делаем аплоад и все с ним связанное
}
// продолжаем скрипт
Вроде бы работает.
Вопросы.
Можно ли сделать код изящнее?
Почему не срабатывает if ( isset ($_FILES['my_file']) ) ?? То есть в любом случае скрипт пытается аплоадить файл, а у меня это поле - по желанию (юзер оставил поле файла пустым - ничего не происходит).
Спасибо.
Потому что этот массив всегда инициализируется, когда приходит форма с полем file.
Я обычно оринтируюсь на значение error ($_FILES['my_file']['error']), так как он показывает, был ли загружен файл на сервер.
Потому что массив $_FILES инициирован и он не пустой.
Разобрался, спасибо!
Код:
if (!empty ($_FILES['my_file']['name']) )
{
// делаем аплоад и все с ним связанное
}
// продолжаем скрипт
{
// делаем аплоад и все с ним связанное
}
// продолжаем скрипт
как вариант
Код:
if (!empty ($_FILES['my_file']['name']) )
{
// делаем аплоад и все с ним связанное
}
// продолжаем скрипт
{
// делаем аплоад и все с ним связанное
}
// продолжаем скрипт
как вариант[/QUOTE]
Не шибко хороший вариант. Такого, конечно, не бывает, но можно допустить вероятность, что файл приходит без имени. Тогда лучше уж проверять так:
Код:
if(is_file($_FILES['my_file']['tmp_name'])){
...
}
...
}
Но, это так, конечно я, просто... На самом деле существует замечательная вещь is_uploaded_file($_FILES['my_file']['tmp_name'])