Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   PHP (http://www.flasher.ru/forum/forumdisplay.php?f=20)
-   -   Как узнать размер удаленного файла (http://www.flasher.ru/forum/showthread.php?t=31209)

evgenz 06.05.2002 16:42

Как узнать размер удаленного файла
 
Есть УРЛ : 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 не сработает....
криво

Crazy 06.05.2002 16:46

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... :)

evgenz 06.05.2002 17:17

А если файл мег или 2 так на любом серваке тайм аут кончится..
Вообщем ясно рационального выхода нет, если только читать по килобайтам и усреднять

SPV 06.05.2002 17:21

Есть такой запрос:
HEAD /any.file HTTP/1.0

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

Crazy 06.05.2002 17:22

Цитата:

Оригинал написал(а) evgenz
А если файл мег или 2 так на любом серваке тайм аут кончится..
В самом деле?

Цитата:


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

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

(Hint: операция чтения в PHP, IMHO, буферизуется).

Crazy 06.05.2002 17:23

Цитата:

Оригинал написал(а) SPV
На что сервер выплёвывает инфу о файле /any.file, где должен (ну просто обязан) быть его размер.
Практика показывает, что вовсе не обязан. :) Но часто бывает.

SPV 06.05.2002 17:28

2Crazy
если запрошен действительно файл на диске, а не скрипт и т.п., то размер будет дан на 99.9%.

evgenz 06.05.2002 17:35

А если можно поподробнее как этот запрос выполнить...
Ну не пользовался такими прикольными феньками...

evgenz 06.05.2002 17:37

Ну и соответственно обрабатывать то что "выплюнет" сервер

Crazy 06.05.2002 17:41

Цитата:

Оригинал написал(а) SPV
если запрошен действительно файл на диске, а не скрипт и т.п., то размер будет дан на 99.9%.
Точнее, если файл отдается непосредственно http-сервером и этот сервер -- Apache или IIS, то 100%.

Если выдается через какое-либо серверное расширение независимо от типа, то вероятность снижается. Поскольку по URL'у невозможно гарантированно определить, что перед на нами самом деле, то нужно все же учитывать, что размер вполне может быть неопределен до момента реальной выдачи по POST/GET.


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

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