[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка $_FILES
Kumirska
Привет Всем!

<p>
Фото:<br> <input type="file" name="userfile">
<
input type="submit" name="fupload" value="загрузить">
</
p>




Принимающий скрипт:



Как прописать проверку существования, то есть что фотка была выбрана и отправлена??

if ($_FILES['fupload']) //так?
{
..........;
}




Спустя 3 минуты, 22 секунды (24.06.2011 - 14:05) neadekvat написал(а):
if ($_FILES['fupload']['name'] != '')

если я не перепутал вложенность массиво.

Спустя 35 минут, 57 секунд (24.06.2011 - 14:41) XCross написал(а):
Не... лучше проверяй так:

if(!file_exists($_FILES['fupload']['tmp_name'])){
//Код
}

Спустя 2 часа, 41 минута, 10 секунд (24.06.2011 - 17:22) neadekvat написал(а):
kmaks, принципиальное отличие? Уж тогда error проверять.

Спустя 11 минут, 22 секунды (24.06.2011 - 17:34) XCross написал(а):
Да хз. У меня такой вопрос был на форуме, мне ответили что так производить проверку. Я принял это за истину и везде так проверяю.

Спустя 3 минуты, 15 секунд (24.06.2011 - 17:37) Игорь_Vasinsky написал(а):
neadekvat
а в error - попадёт момент если файл просто перепишет существующий?

мне предпочтительней проверить через file_exists().

UPD:
UPLOAD_ERR_OK
Значение: 0; Ошибок не возникало, файл был успешно загружен на сервер.
UPLOAD_ERR_INI_SIZE
Значение: 1. Размер принятого файла превысил максимально допустимый размер, задаваемый директивой upload_max_filesize конфигурационного файла php.ini.
UPLOAD_ERR_FORM_SIZE
Значение: 2. Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме.
UPLOAD_ERR_PARTIAL
Значение: 3. Загружаемый файл был получен только частично.
UPLOAD_ERR_NO_FILE
Значение: 4. Файл не был загружен.

Спустя 2 часа, 43 секунды (24.06.2011 - 19:37) ИНСИ написал(а):
В данном случае, правильнее проверять через empty
if(!empty($_FILES)) {

Спустя 12 минут, 18 секунд (24.06.2011 - 19:50) XCross написал(а):
Не, VellBox. Кажется, что если проверять что в errors, то уже картина будет ярче. Тут уже получишь сразу инфу какую-нибудь....

Спустя 8 минут, 1 секунда (24.06.2011 - 19:58) ИНСИ написал(а):
Цитата
Тут уже получишь сразу инфу какую-нибудь....

Мда ... Какую инфу ты получишь, если файл не загружается? Только то, что файл не найден.

А другие ошибки, обычно сам обрабатываешь в скрипте, так у каждого скрипта свои задачи. Поэтому в данном случае, это лишнее работать с ошибками. Надо лишь проверить на пустоту, а остальное уже самому делать.


Спустя 3 минуты, 33 секунды (24.06.2011 - 20:01) XCross написал(а):
Если файл не загружен, то получишь ошибку под номером 4, а если загружен, то можно узнать размер, корректно ли загружен.

Спустя 46 секунд (24.06.2011 - 20:02) neadekvat написал(а):
velbox
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ( ! empty($_FILES))
echo 'не пусто';
else
echo 'пусто';
}
?>

<form method="post" enctype="multipart/form-data">
<
input type="file" name="asd">
<
input type="submit">
</
form>


Запусти и нажми "отправить", не выбирая файла.

Спустя 45 минут, 41 секунда (24.06.2011 - 20:48) ИНСИ написал(а):
neadekvat я вижу любишь спорить ...

1. Не правильно тут написал
Цитата
if ( ! empty($_FILES))

Надо было:
if (!empty($_FILES['asd']['tmp_name']))


Цитата
сли файл не загружен, то получишь ошибку под номером 4, а если загружен, то можно узнать размер, корректно ли загружен.

Это все танцы с бубном ....

Спустя 1 минута, 31 секунда (24.06.2011 - 20:49) XCross написал(а):
vellbox, аналогично... посмотри о чем neadekvat толкует....

Спустя 2 минуты, 49 секунд (24.06.2011 - 20:52) neadekvat написал(а):
Цитата (velbox @ 24.06.2011 - 21:48)
Не правильно тут написал

А, всего лишь. Дейсвтительно. ТС бы и сам догадался. Почти синонимично.

Цитата (velbox @ 24.06.2011 - 21:48)
Это все танцы с бубном

Это такой своеобразный юмор? Какие еще танцы? Это инструмент, который предназначен именно для того, чтобы отслеживать успешность операции.

Свои ошибки и "описки" надо признавать и исправлять. Особенно со статусом "эксперт".

Спустя 9 минут, 37 секунд (24.06.2011 - 21:02) ИНСИ написал(а):
Цитата
Какие еще танцы? Это инструмент, который предназначен именно для того, чтобы отслеживать успешность операции.

Я и не спорю, что это нужный инструмент. Я говорю о том, чтобы проверить на "прислали" ли файл скрипту, лучше использовать empty .... Я хоть слово сказал, что ошибки "гавно" и не надо использовать?

Цитата
Свои ошибки и "описки" надо признавать и исправлять. Особенно со статусом "эксперт".

Слушай, где я ошибся? Я что-то неверно сказал? Или что?

Спустя 2 минуты, 40 секунд (24.06.2011 - 21:04) neadekvat написал(а):
Цитата (velbox @ 24.06.2011 - 22:02)
Слушай, где я ошибся? Я что-то неверно сказал? Или что?

Здесь: http://ybex.com/d/s6u89athn6f3qh13f8nq27qz...fu7bdcykgi.html
Этот вариант нерабочий.

Цитата (velbox @ 24.06.2011 - 22:02)
Я говорю о том, чтобы проверить на "прислали" ли файл скрипту, лучше использовать empty

Чем он лучше? Делая запрос на удаленный хост, ты проверяешь то, что пришло в "теле" документа или в заголовке? error - это заголовок, (tmp_)name - это тело.

Спустя 48 секунд (24.06.2011 - 21:05) XCross написал(а):

if($_FILES['*']['tmp_name'] == ''){

}


Идентична

if(empty($_FILES['*']['tmp_name'])){

}

Спустя 2 минуты, 9 секунд (24.06.2011 - 21:07) neadekvat написал(а):
Цитата (kmaks @ 24.06.2011 - 22:05)
Идентична

Если $_FILES['*']['tmp_name'] будет равно 0 (гипотетически) - то не идентично.
Вообще, я хочу сказать, что
а) поначалу (особенно неопытному человеку) кажется, что ты имеешь ввиду "empty то же, что и == '' "
б) речь о другом.

Спустя 4 минуты, 58 секунд (24.06.2011 - 21:12) ИНСИ написал(а):
Цитата
Здесь: http://ybex.com/d/s6u89athn6f3qh13f8nq27qz...fu7bdcykgi.html

Ааа. вот к чему ты придрался. Прочитай мой текст:
Цитата
В данном случае, правильнее проверять через empty

Я говорил именно про саму функцию empty. Программисту даже начального уровня, будет понятно, что надо указать полностью $_FILES ... А если ты не знал этого, надо было просто спросить, а не строить из себя учителя!

Спустя 2 минуты, 8 секунд (24.06.2011 - 21:14) XCross написал(а):
Оп стоп, памада у меня х)

Спустя 7 минут, 14 секунд (24.06.2011 - 21:22) neadekvat написал(а):
Цитата (velbox @ 24.06.2011 - 22:12)
Программисту даже начального уровня, будет понятно, что надо указать полностью $_FILES

Цитата (velbox @ 24.06.2011 - 22:12)
А если ты не знал этого, надо было просто спросить, а не строить из себя учителя!

Лолшто? У меня нет слов.


_____________
никому не дано знать абсолютной истины, ибо понятия, которыми мы оперируем, сами по себе относительны
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.