|
|
|
| возникла не понятная для меня ситуация, помогите, пожалуйста, разобраться.
сделал форму для отправки сообщений с сайта и в форме есть поле для выбора файла.
делаю проверку файла на его размер
<?php
if(isset($_POST['submit'])){
// проверка разных полей формы
................................................................
// проверка изображения
if($_FILES['files']['error']) == 1 echo "Файл превышает допустимый размер";
// дальнейшая обработка данных формы
..................................................................
}
?>
|
и вот самое интересное
проверяю на локальном компе, всё проходит нормально, если файл превышает допустимый размер, то сообщение об этом появляется.
загрузил на реальный сервер, проверяю....
и ни чего не происходит.
вернее, время выполнения скрипта в браузере идёт, показывает какую то скорость выполнения, но более ни чего не происходит, такое впечатление, что зависло.
так вот вопрос, из-за чего такое может быть? или проблема в моей проверке или в соединении с сервером?
как я понимаю, после нажатия кнопки в форме, создаётся массив $_FILES и можно обратиться к выбраному элементу массива и проверить его и если всё нормально, можно продолжить загрузку изображения.
или что то я всё таки не понял с этим массивом?
p.s. плохо, что при редактировании сообщения нельзя редактировать заголовок..., а то опечаточка небольшая .... | |
|
|
|
|
|
|
|
для: Slo_Nik
(13.11.2009 в 19:10)
| | вообще-то проверять подобного рода запросы нужно выводом
echo '<pre>';
print_r($_FILES);
В том числе и для файлов несколько меньше ограничения. | |
|
|
|
|
|
|
|
для: Trianon
(13.11.2009 в 19:16)
| | >В том числе и для файлов несколько меньше ограничения.
что Вы имели ввиду?
>print_r($_FILES);
а зачем выводить в окно браузера содержимое всего массива?
ведь нужно проверить всего один элемент, в данном случае.
и всё таки вопрос остался, такая проверка, как я делаю, может вызвать сбой в работе скрипта? | |
|
|
|
|
|
|
|
для: Slo_Nik
(13.11.2009 в 19:28)
| | а почему бы прямо не проверить выполнение условия по ограничению размера?
if ($_FILES["file"]["size"]>upload_max_filesize)
|
ведь ошибка может быть отличная от 1, но и не ноль.
0 - ошибок не было, файл загружен.
1 - размер загруженного файла превышает размер установленный параметром upload_max_filesize в php.ini
2 - размер загруженного файла превышает размер установленный параметром MAX_FILE_SIZE в HTML форме.
3 - загружена только часть файла
4 - файл не был загружен (Пользователь в форме указал неверный путь к файлу). | |
|
|
|
|
|
|
|
для: Slo_Nik
(13.11.2009 в 19:28)
| | >>В том числе и для файлов несколько меньше ограничения.
>что Вы имели ввиду?
>
Что проблемы могли возникнуть не из-за этого конкретного нарушения ограничения по длине.
>>print_r($_FILES);
>а зачем выводить в окно браузера содержимое всего массива?
>ведь нужно проверить всего один элемент, в данном случае.
Потому что Вы не знаете, что этот случай - данный.
Если все ветви диагностического вывода у Вас находлятся под условиями - Вы вообще с гарантией не можете отличить нормальное исполнение скрипта от ненормального.
Мало ли почему тишина - потому что условие ошибки не выполнилось, или потому что всё сдохло еще до ошибки?
>и всё таки вопрос остался, такая проверка, как я делаю, может вызвать сбой в работе скрипта?
Вот только кой хрен Вам на вопросы отвечать, если Вы ответы не слушаете...
Сбой может вызывать длинный файл сам по себе. | |
|
|
|