Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файла на HTTP-сервер (размер файла), узнать размер загружаемого файла 
:(
    Опции темы
СтудентИзРоссии
Дата 31.3.2007, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 13.11.2006

Репутация: нет
Всего: нет



Добрый вечер!

Используется стандартная HTML-форма для загрузки файла на HTTP-сервер:
http://php.net/manual/en/features.file-upload.php

Возможно ли без полной загрузки файла на HTTP-сервер получить размер загружаемого файла?
PM MAIL   Вверх
BuShaRt
Дата 1.4.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



http://phpclub.ru/detail/article/upload
а именно:
$_FILES['userfile']['size'] - размер загруженного файла;

Это сообщение отредактировал(а) BuShaRt - 2.4.2007, 10:34
PM MAIL   Вверх
Golda
Дата 1.4.2007, 19:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



Не уверена. Но вот ограничить максимальный размер загружаемого файла легко. Он задается зарезервированным параметром MAX_FILE_SIZE.
Код

<input type="hidden" name="MAX_FILE_SIZE" value="30000" />


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
PM MAIL   Вверх
skyboy
Дата 1.4.2007, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(СтудентИзРоссии @  31.3.2007,  22:44 Найти цитируемый пост)
Возможно ли без полной загрузки файла на HTTP-сервер получить размер загружаемого файла? 

специфика такова, что РНР-скрипт(указанный в ACTI|ON для формы) запускается уже после загрузки файла на сервер. потому без полной загрузки - только если написать модуль для Apache(или какой у вас там Web-сервер используется). можешь зайти в форум по ActionScript и поинтересоваться там о подобном механизме.
PM MAIL   Вверх
СтудентИзРоссии
Дата 7.4.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 13.11.2006

Репутация: нет
Всего: нет



BuShaRt, к сожалению, массив $_FILES можно получить только
после полной загрузки файла на сервер.

Golda, к сожалению, этот метод не безопасный.

skyboy, спасибо за совет, попробуем. На http://rapidshare.com
и http://ifolder.ru каким-то образом эту задачу решили.
PM MAIL   Вверх
capitan
Дата 11.4.2007, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



Что значит полная загрузка на сервер? При uploade  файла, передаётся массив $_FILES. В котором есть все данные о файле. Дальше используем например функцию move_uploaded_file или copy/ Кому что нравиться и файл загружается на сервер. Перед вызовом этих функций можно прочитать массив и если что-то не устраивает,- файл не грузить. Так например идёт проверка на тип , размер  аватара при загрузки его на форум.  Поясните что значит полная и неполная загрузка?
PM MAIL WWW ICQ   Вверх
skyboy
Дата 11.4.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(capitan @  11.4.2007,  15:12 Найти цитируемый пост)
Поясните что значит полная и неполная загрузка? 

а значит это, что файл, даже до того, как ты его делаешь move/copy_uploaded_file, уже загружен на сервер в папку tmp_dir. И, если файл занимает, скажем, 100 Мб, был загружен не за одну секунду. В такой ситуации очень обидно фильтровать файлы "пост фактум" - было бы хорошо(автору треда) определять размер файла ДО того, как файл будет загружен на сервер и появится в папке tmp_dir и массиве $_FILES ;-)
PM MAIL   Вверх
mishaSL
Дата 11.4.2007, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(capitan @  11.4.2007,  16:12 Найти цитируемый пост)
При uploade  файла, передаётся массив $_FILES

массив $_FILES - создается после загрузки файла на сервер.
Цитата(capitan @  11.4.2007,  16:12 Найти цитируемый пост)
Дальше используем например функцию move_uploaded_file или copy

Эти функции работают с уже загруженными файлами.

Цитата(СтудентИзРоссии @  31.3.2007,  23:44 Найти цитируемый пост)
Возможно ли без полной загрузки файла на HTTP-сервер получить размер загружаемого файла? 

Получить размер файла до загрузки на чистом PHP(без использования других языков) на сколько мне известо нельзя. Можно установить максимальный размер загружаемого файла - директива upload_max_filesize, если файл больше чем установленный размер, то информация об этом будет в $_FILES['userfile']['error'] (подробнее здесь)



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
СтудентИзРоссии
  Дата 3.6.2007, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 13.11.2006

Репутация: нет
Всего: нет



Цитата(skyboy @ 1.4.2007,  20:04)
Цитата(СтудентИзРоссии @  31.3.2007,  22:44 Найти цитируемый пост)
Возможно ли без полной загрузки файла на HTTP-сервер получить размер загружаемого файла? 

специфика такова, что РНР-скрипт(указанный в ACTI|ON для формы) запускается уже после загрузки файла на сервер. потому без полной загрузки - только если написать модуль для Apache(или какой у вас там Web-сервер используется). можешь зайти в форум по ActionScript и поинтересоваться там о подобном механизме.

Нашли решение для Apache 2.X - mod_uploaderhttp://acapulco.dyndns.org/mod_uploader/

Может кто-то знает, что-нибудь подобное для Apache 1.3.X?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0834 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.