Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 06.05.2002, 16:42
evgenz вне форума Посмотреть профиль Отправить личное сообщение для evgenz Посетить домашнюю страницу evgenz Найти все сообщения от evgenz
  № 1  
evgenz

Регистрация: Feb 2001
Адрес: Moscow
Сообщений: 223
Отправить сообщение для evgenz с помощью ICQ
По умолчанию Как узнать размер удаленного файла

Есть УРЛ : http://site/file.zip лежит он на другом сервере возможно в другой стране...


Пишу
filesize ("http://site/file.zip");

на что он мне пишет
Warning: stat failed for http://site/file.zip (errno=2 - No such file or directory) in /pub/home/game.php on line 84

думал нет доступа к файлу
fopen() работает...

Так что читать из него по байту пока EOF не сработает....
криво

Старый 06.05.2002, 16:46
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 2  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
По умолчанию Re: Как узнать размер удаленного файла

Цитата:
Оригинал написал(а) evgenz
Пишу
filesize ("http://site/file.zip");
Читаем доки, ибо они суть рулез: "This function will not work on remote files; the file to be examined must be accessible via the server's filesystem."

Цитата:

Так что читать из него по байту пока EOF не сработает....
криво
Надежный способ только один -- тот, что ты только что озвучил. Есть альтернатива, которая будет работать на некоторых серверах: в заголовке HTTP-ответа может быть указан размер файла. Так что читай RFC на HTTP...
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 06.05.2002, 17:17
evgenz вне форума Посмотреть профиль Отправить личное сообщение для evgenz Посетить домашнюю страницу evgenz Найти все сообщения от evgenz
  № 3  
evgenz

Регистрация: Feb 2001
Адрес: Moscow
Сообщений: 223
Отправить сообщение для evgenz с помощью ICQ
А если файл мег или 2 так на любом серваке тайм аут кончится..
Вообщем ясно рационального выхода нет, если только читать по килобайтам и усреднять

Старый 06.05.2002, 17:21
SPV вне форума Посмотреть профиль Отправить личное сообщение для SPV Найти все сообщения от SPV
  № 4  
SPV
 
Аватар для SPV

Регистрация: Jan 2000
Адрес: St-Petersburg
Сообщений: 1,229
Отправить сообщение для SPV с помощью ICQ
Есть такой запрос:
HEAD /any.file HTTP/1.0

На что сервер выплёвывает инфу о файле /any.file, где должен (ну просто обязан) быть его размер.
__________________
Two beer or not two beer?...

Старый 06.05.2002, 17:22
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 5  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) evgenz
А если файл мег или 2 так на любом серваке тайм аут кончится..
В самом деле?

Цитата:

Вообщем ясно рационального выхода нет, если только читать по килобайтам и усреднять
Мсье полагает, что чтение по килобайтам чем-то принципиально отличается от чтения по байтам? Или имеется в виду тормознутость PHP?

(Hint: операция чтения в PHP, IMHO, буферизуется).
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 06.05.2002, 17:23
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 6  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) SPV
На что сервер выплёвывает инфу о файле /any.file, где должен (ну просто обязан) быть его размер.
Практика показывает, что вовсе не обязан. Но часто бывает.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 06.05.2002, 17:28
SPV вне форума Посмотреть профиль Отправить личное сообщение для SPV Найти все сообщения от SPV
  № 7  
SPV
 
Аватар для SPV

Регистрация: Jan 2000
Адрес: St-Petersburg
Сообщений: 1,229
Отправить сообщение для SPV с помощью ICQ
2Crazy
если запрошен действительно файл на диске, а не скрипт и т.п., то размер будет дан на 99.9%.
__________________
Two beer or not two beer?...

Старый 06.05.2002, 17:35
evgenz вне форума Посмотреть профиль Отправить личное сообщение для evgenz Посетить домашнюю страницу evgenz Найти все сообщения от evgenz
  № 8  
evgenz

Регистрация: Feb 2001
Адрес: Moscow
Сообщений: 223
Отправить сообщение для evgenz с помощью ICQ
А если можно поподробнее как этот запрос выполнить...
Ну не пользовался такими прикольными феньками...

Старый 06.05.2002, 17:37
evgenz вне форума Посмотреть профиль Отправить личное сообщение для evgenz Посетить домашнюю страницу evgenz Найти все сообщения от evgenz
  № 9  
evgenz

Регистрация: Feb 2001
Адрес: Moscow
Сообщений: 223
Отправить сообщение для evgenz с помощью ICQ
Ну и соответственно обрабатывать то что "выплюнет" сервер

Старый 06.05.2002, 17:41
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 10  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) SPV
если запрошен действительно файл на диске, а не скрипт и т.п., то размер будет дан на 99.9%.
Точнее, если файл отдается непосредственно http-сервером и этот сервер -- Apache или IIS, то 100%.

Если выдается через какое-либо серверное расширение независимо от типа, то вероятность снижается. Поскольку по URL'у невозможно гарантированно определить, что перед на нами самом деле, то нужно все же учитывать, что размер вполне может быть неопределен до момента реальной выдачи по POST/GET.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Создать новую тему   Часовой пояс GMT +4, время: 03:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:38.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.