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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Fopen и размер файла, определения размера удаленного файла 
:(
    Опции темы
OneFourth
Дата 1.2.2007, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот такая проблемка:
Качаем на сервер удаленный файл при помощи fopen. Необходимо узнать размер файла.
Я реализовал следующим способом
Код


$handle = fopen ('...удаленный файл...', "rb");
        $outhandle=fopen ($path.$tofile,"w"); 
        $filesize=0;$buffer='';
        //read and write file to filesystem
        while (!feof($handle))
        { 
            $buffer=fread($handle,4096); 
            fputs($outhandle,$buffer); 
            $filesize+=4096;
            if($filesize>52428800)
            {
                echo "<p align='center'><font color='#FF0000' size='+2'>
                    Файл превышает максимально допустимый размер (50 мб).
                    <br><a href='$_SERVER[HTTP_REFERER]'>Вернуться</a></font></p>
                    ";
                require_once('footer.php');
                exit();
            }//if filesize
        
        }//while
 

Т.е. в переменой $filesize идет подсчет прочитаных байт. 
Ошибка в том что корректно не определяется размер файла. При лимите в 50мб (52428800) не пропускается даже 40-45мб файл. При увеличении лимита до 100мб скрипт виснет...

Собственно, как лучше реализовать закачку файла на сервер с учетом контроля размера закачиваемого файла?
PM   Вверх
KirSSS
Дата 1.2.2007, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



PM MAIL   Вверх
GZep
Дата 1.2.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


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

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



А в php есть такой специальный флаг, который ставит лимит на входящие post данные...


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
OneFourth
Дата 1.2.2007, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



2KirSSS
filesize($fname) - определяет только размер локальных файлов, а речь идет об удаленных...

2GZep 
Так ведь данные не POST, файл качается с УРЛа посредством fopen...
PM   Вверх
mishaSL
Дата 1.2.2007, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Никогда не закачивай удаленный файл с помощью fopen. Почитай подробнее здесь http://forum.vingrad.ru/topic-132301.html

Добавлено @ 17:14 
А для определения размера читаешь заголовок Content-Length.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
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.

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


 




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


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

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