![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
СтудентИзРоссии |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
Добрый вечер!
Используется стандартная HTML-форма для загрузки файла на HTTP-сервер: http://php.net/manual/en/features.file-upload.php Возможно ли без полной загрузки файла на HTTP-сервер получить размер загружаемого файла? |
|||
|
||||
BuShaRt |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: 4 Всего: 6 |
http://phpclub.ru/detail/article/upload
а именно: $_FILES['userfile']['size'] - размер загруженного файла; Это сообщение отредактировал(а) BuShaRt - 2.4.2007, 10:34 |
|||
|
||||
Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 20 Всего: 42 |
Не уверена. Но вот ограничить максимальный размер загружаемого файла легко. Он задается зарезервированным параметром MAX_FILE_SIZE.
BuShaRt, насколько я понимаю, у JS нет доступа к файловой системе. Соответственно, нет возможности узнать размер какого-либо файла. Более того, на уровне JS из соображений безопасности нет даже доступа к value поля типа file. Что Вы имели в виду? (Надеюсь, этот вопрос не будет расценен как offtopic. Не увидела возможности задать его по другому). -------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
специфика такова, что РНР-скрипт(указанный в ACTI|ON для формы) запускается уже после загрузки файла на сервер. потому без полной загрузки - только если написать модуль для Apache(или какой у вас там Web-сервер используется). можешь зайти в форум по ActionScript и поинтересоваться там о подобном механизме. |
|||
|
||||
СтудентИзРоссии |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
BuShaRt, к сожалению, массив $_FILES можно получить только
после полной загрузки файла на сервер. Golda, к сожалению, этот метод не безопасный. skyboy, спасибо за совет, попробуем. На http://rapidshare.com и http://ifolder.ru каким-то образом эту задачу решили. |
|||
|
||||
capitan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 27.2.2005 Где: Москва Репутация: 9 Всего: 13 |
Что значит полная загрузка на сервер? При uploade файла, передаётся массив $_FILES. В котором есть все данные о файле. Дальше используем например функцию move_uploaded_file или copy/ Кому что нравиться и файл загружается на сервер. Перед вызовом этих функций можно прочитать массив и если что-то не устраивает,- файл не грузить. Так например идёт проверка на тип , размер аватара при загрузки его на форум. Поясните что значит полная и неполная загрузка?
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
а значит это, что файл, даже до того, как ты его делаешь move/copy_uploaded_file, уже загружен на сервер в папку tmp_dir. И, если файл занимает, скажем, 100 Мб, был загружен не за одну секунду. В такой ситуации очень обидно фильтровать файлы "пост фактум" - было бы хорошо(автору треда) определять размер файла ДО того, как файл будет загружен на сервер и появится в папке tmp_dir и массиве $_FILES ;-) |
|||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 19 Всего: 54 |
массив $_FILES - создается после загрузки файла на сервер. Эти функции работают с уже загруженными файлами.
Получить размер файла до загрузки на чистом PHP(без использования других языков) на сколько мне известо нельзя. Можно установить максимальный размер загружаемого файла - директива upload_max_filesize, если файл больше чем установленный размер, то информация об этом будет в $_FILES['userfile']['error'] (подробнее здесь) -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
СтудентИзРоссии |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
Нашли решение для Apache 2.X - mod_uploader: http://acapulco.dyndns.org/mod_uploader/ Может кто-то знает, что-нибудь подобное для Apache 1.3.X? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |