| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > проблема с определнием формата файла |
| Автор: yngwie19 3.2.2010, 08:18 | ||||
здравствуйте у меня есть форма регистрации, в которой добавлен type=file для загрузки аватара изображения. В скрипте который проверяет правильность заполнения формы регистрации присутствует проверка формата загружаемого изображения:
Когда пробую загрузить например какой-нибудь левый файл типа .zip объемом 2 mb, то проверка срабатывает и выдается сообщение "плохой формат", а если пробую загрузить zip. к примеру 120mb, то он не доходит до этой проверки а останавливается раньше, там где у меня проверка:
Подскажите почему так? |
| Автор: Veve 3.2.2010, 11:10 | ||
Что означает:
Какое сообщение об ошибке? Или как ты узнаешь, что он там останавливается? Скорее всего в настройках указан размер файла для upload < 120mb |
| Автор: yngwie19 3.2.2010, 18:34 | ||
Veve, вот скрипт который проверяет регистрационные данные пользователя:
если загружаю zip файл размером 9 kb, получаю сообщение "Аватар должен быть в формате <strong>JPG,GIF или PNG", а если загружаю zip файл размером 120 mb, то получаю сообщение Вы ввели не всю информацию, вернитесь назад и заполните все поля!. Т.е во втором случае скрипт не доходит до проверки формата изображения, а говорит что якобы не введены логин и пароль (хотя все введено). |
| Автор: IgorIV 3.2.2010, 20:41 | ||
В самом начале поставь.
А если архив .zip переименновать в .jpg и загрузить? |
| Автор: yngwie19 3.2.2010, 20:57 |
| IgorIV, к сожалению $_SERVER ['CONTENT_LENGTH'] > $sizeallfiles не помогло, та же самая ошибка. тоже самое. Может все дело в том что Я тестирую на локальном компе на денвире? |
| Автор: yngwie19 3.2.2010, 22:21 | ||
да но как пропускает, он по крайней мере говорит, что файл не того формата. не доходит до этой строчки. |
| Автор: IgorIV 4.2.2010, 21:10 |
var_dump($_POST); Тебя никто не заставляет писать exit. Естественно после него ничего не выводится, скрипт прекращает работу. По сути, твои 120 мб больше разрешённых. Сервер обрывает передачу и никаких данных нет. |
| Автор: capitan 5.2.2010, 15:02 | ||
| yngwie19, Кто же так проверяет допустимые расширения? Может не стоит с самого начала писать дырявый скрипт? Можно посмотреть в такую сторону:
Но эту проверку тоже можно обойти, но уже сложнее. Немного погуглив можно найти правильное решение. |
| Автор: TName 7.2.2010, 13:01 | ||
если сильно напрягает, что ошибка не та вылазит, когда файл большой, то иди в php.ini и там
А вобще http://ru.php.net/manual/en/features.file-upload.php всё понятно расписано откуда ноги растут. P.S. С английским надо дружить. Хотя бы читать. |
| Автор: Photon 11.2.2010, 00:02 |
| А может проще вообще использовать js-скрипт, который будет проверять это еще на клиенте? Например jQuery MultiFile - удобная штука А в данном случае всё происходит от того, что веб-сервер сначала получает полностью все загружаемые данные, а потом передаёт их в PHP для обработки. Если размер файла больше, чем максимальный размер POST-данных, разрешённый у PHP (там есть два параметра: upload_max_filesize и post_max_size), то PHP считает, что ему вообще ничего не пришло (в том числе и логин с паролем). |