Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Upload файла. Проверка заполения поля формы

16K
25 июля 2006 года
KonstRuctor
4 / / 31.03.2006
Есть форма:
<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']) ) ?? То есть в любом случае скрипт пытается аплоадить файл, а у меня это поле - по желанию (юзер оставил поле файла пустым - ничего не происходит).

Спасибо.
8
25 июля 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=KonstRuctor]Почему не срабатывает if ( isset ($_FILES['my_file']) ) ?? То есть в любом случае скрипт пытается аплоадить файл, а у меня это поле - по желанию (юзер оставил поле файла пустым - ничего не происходит).[/QUOTE]
Потому что этот массив всегда инициализируется, когда приходит форма с полем file.
15
25 июля 2006 года
shaelf
2.7K / / 04.05.2005
Я обычно оринтируюсь на значение error ($_FILES['my_file']['error']), так как он показывает, был ли загружен файл на сервер.
12
25 июля 2006 года
alekciy
3.0K / / 13.12.2005
Почему не срабатывает if ( isset ($_FILES['my_file']) ) ??
Потому что массив $_FILES инициирован и он не пустой.
16K
26 июля 2006 года
KonstRuctor
4 / / 31.03.2006
Разобрался, спасибо!
7.6K
26 июля 2006 года
split
11 / / 21.10.2004
 
Код:
if (!empty ($_FILES['my_file']['name']) )
         {
         // делаем аплоад и все с ним связанное
         }
         // продолжаем скрипт


как вариант
8
26 июля 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=split]
 
Код:
if (!empty ($_FILES['my_file']['name']) )
         {
         // делаем аплоад и все с ним связанное
         }
         // продолжаем скрипт


как вариант[/QUOTE]
Не шибко хороший вариант. Такого, конечно, не бывает, но можно допустить вероятность, что файл приходит без имени. Тогда лучше уж проверять так:
 
Код:
if(is_file($_FILES['my_file']['tmp_name'])){
    ...
}


Но, это так, конечно я, просто... На самом деле существует замечательная вещь is_uploaded_file($_FILES['my_file']['tmp_name'])
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог