Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как проверить размер закачиваемого файла на стороне клиента? / 14 сообщений из 14, страница 1 из 1
12.08.2005, 11:22
    #33212389
vercha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
Доброго времени суток!

Я хочу обработать ошибку такого рода: чтобы при загрузке ооо-чень больших файлов на сервер пользователь видел сообщение о том, что он неправ.

У меня в форме MAX_FILE_SIZE=1М. Настройки по умолчанию upload_max_filesize=2М, post_max_size=8М.

При закачке файлов до 8М все ОК, отлавливаю ошибку превышения заданного размера с помощью $_FILES["userfile"]["error"] и сообщаю об этом пользователю.

При превышении значения post_max_size соответственно !isset($_POST) и
!isset($_FILES), файл не закачивается - оно и понятно, слишком большой! Но: пользователю не выдается сообщение об ошибке, а хотелось бы. Кроме этого, сбрасываются и все скрытые переменные, передаваемые через форму.

Думаю, что в таком случае стоит проверять размер файла до сабмита, т.е. напрашивается Java Script. Можно ли средствами JS это сделать?

Если кто-нибудь сталкивался с такой проблемой, помогите, пожалуйста. Может, кто-нибудь предложит более изящное решение.

Заранее спасибо.

PS: Извините, если такая тема уже была, поиском ничего не нашла - сервер перегружен.
...
Рейтинг: 0 / 0
12.08.2005, 12:06
    #33212589
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
JS вообще не умеет работать с файлами.
Что касается сообщений об ошибках клиенту, то Upload файлов, и все с этим связанное
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
12.08.2005, 12:21
    #33212654
vercha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
Дело в том, что я не хочу менять настройки php.ini, меня вполне устраивают ограничения по умолчанию. Мне нужно каким-то образом узнать размер закачанного файла (размера > post_max_size) и выдать сообщение типа "превышен post_max_size". Повторюсь, что $_FILES в данном случае не инициализируется, и $_FILES['userfile']['size'] я использовать не могу.

Кстати, а какой максимальный post_max_size можно указать?
...
Рейтинг: 0 / 0
12.08.2005, 13:16
    #33212859
автор324
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
Если превышен объем файла то $_FILES['имя']['error'] == 1. Почитайте мануал. Вам же давали ссылку.
...
Рейтинг: 0 / 0
12.08.2005, 14:07
    #33213045
vercha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
Уважаемый автор324, повторюсь в 3й раз: в данном случае $_FILES не инициализирован, $_FILES['имя']['error'] соответственно тоже. Ошибка при передаче через POST объема данных, превышающих допустимый предел. Читайте внимательнее.
...
Рейтинг: 0 / 0
12.08.2005, 14:15
    #33213075
автор234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
Тогда вам надо разобраться почему не инициализируется $_FILES. На сколько я знаю не зависимо от того превышен или нет лимит он должен быть инициализирован. Не инициализируется он если неправильно указан enctype формы.
...
Рейтинг: 0 / 0
12.08.2005, 14:19
    #33213083
vercha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
enctype="multipart/form-data"

Я думаю $_FILES не инициализируется как раз потому, что ошибка при передачи данных из формы.
...
Рейтинг: 0 / 0
12.08.2005, 14:23
    #33213099
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
Заголовки при передаче файла читать пробовали?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
12.08.2005, 14:33
    #33213143
vercha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
4m@t!c: не поняла ваш вопрос.
...
Рейтинг: 0 / 0
12.08.2005, 14:40
    #33213171
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
>Я думаю $_FILES не инициализируется как раз потому,
>что ошибка при передачи данных из формы.
Вместо того, что бы гадать, виновата ли форма - посмотрите какими заголовками обмениваются клиент с сервером. Передает ли клиент файл, и что делает в ответ на это сервер.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
12.08.2005, 14:52
    #33213225
VERS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
verchaenctype="multipart/form-data"

Я думаю $_FILES не инициализируется как раз потому, что ошибка при передачи данных из формы.

$_FILES инициализируется по любому, передал клиент файл или не передал, превысил не превысил ...
По крайной мере так было до сих пор :)
...
Рейтинг: 0 / 0
12.08.2005, 15:33
    #33213382
vercha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
делаю print_r($_FILES), результат - Array()

в заголовках все то же самое, как если бы аплоадился файл допустимого размера.
...
Рейтинг: 0 / 0
12.08.2005, 15:44
    #33213421
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
Покажите заголовки при передаче большого файла?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
12.08.2005, 16:49
    #33213590
vercha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как проверить размер закачиваемого файла на стороне клиента?
Все, кажется проблема решена.. нашла я [Content-Length] => 44936196
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как проверить размер закачиваемого файла на стороне клиента? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]