проблема с загрузкой файлов

  • Автор темы Автор темы asker23
  • Дата начала Дата начала

asker23

Новичок
проблема с загрузкой файлов

Пытаюсь обработать error который возникает при загрузке файлов размером больше чем это позволяет upload_max_filesize.
казалось бы просто вот кусок скрипта
PHP:
switch ($_FILES['userfile'] ['error'])	{
			   case 1:
		              print '<p>Ошибка: Вы пытаетесь загрузить файл больше чем это позволяют настройки сервера</p>';
		              break;

но почему если возникает эта ошибка мне на upload.php приходит только id сесcии и какойто пустой массив!
в начале скрипта добавил

print_r($_REQUEST);
print_r($_FILES);


вот output:

PHP:
Array ( [PHPSESSID] => t44gjtp663gfs2lkg7kka9cdq7 ) Array ( )

а куда потерялись все данные из формы загрузки ?
 
Наверняка ты превысил не только upload_max_filesize, но и post_max_size (или как его там) - потому тело POST-запроса просто недочиталось до конца (или вообще не стало читаться по преаышению Content-Length), и информации нет. Учитывай, что post_max_size в base64.

Впрочем, я не уверен, что и при превышении только upload_max_filesize тело запроса читается до конца. Проверь, мне лень :)
 
да, превысил я все параметры, но как отловить эту ошибку ?
 
сделай отдельный обработчик загрузки файлов, который потом будет переадресовывать на страницу с результатами загрузки. соответственно для него отсутствие нормально закаченного файла всегда будет ошибкой.
 
to dimagolov

дело в том что речь идет о блоке текста + загрузка файла, при редактировании текста пользователь не всегда будет загружать новый файл. поэтому и проблема именно в том, что не понятно когда вызывать этот обработчик.
 
файл всегда надо загружать отдельно от текста
 
самое простое решение - указывать браузеру MAX_FILE_SIZE, чтобы не допускать подключения больших файлов на стороне браузера. понятно, что это могут и обмануть намеренно, но не случайно.

файл всегда надо загружать отдельно от текста
кстати да, этого легко достигнуть отдельным iframe, в котором будет форма загрузки файла. примерно так делает gmail, когда аттачменты добавляешь.

можно обойтись и без этого. GET параметры гарантированно передадутся, даже если будет превышен размер post_max_size, так что можно в случае наличия файла (это ловиться в JS по onchange) добавлять в action формы GET-параметр с указанием на то, что файл имеет место быть.
 
осталось найти браузер, который это понимает %)
 
Сверху