Как узнать размер FLV от URL? - PullRequest
0 голосов
/ 22 февраля 2012

Если я знаю FLV видео, например:

www.domain.com/video.flv

Я не могу использовать "размер файла", потому что он не может проверить размер по внешнему URL, верно?
Итак, как я могу узнать его размер?

Ответы [ 4 ]

2 голосов
/ 22 февраля 2012

Вы можете использовать CURL для получения заголовков удаленного файла, включая размер файла.

$url = 'http://www.domain.com/video.flv';

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$headers = curl_exec($ch);

$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);

curl_close($ch); 

Если для CURLOPT_NOBODY задано значение true, CURL не загружает тело запрошенного URL.

0 голосов
/ 22 февраля 2012

Соответствующий фрагмент здесь:

http://snippets.dzone.com/posts/show/1207

0 голосов
/ 22 февраля 2012

Я не могу использовать «размер файла», потому что он не может проверить размер по внешнему URL, верно?

Да, это может сделать это,но это немного смешно, потому что обёртки URL сначала загрузят файл, а затем проверит его размер.

Вы можете выполнить запрос HEAD, который запросит у сервера размер файла без запроса данных файла.

0 голосов
/ 22 февраля 2012

Вы можете использовать CURL для отправки HTTP-запроса HEAD на URL-адрес, размер которого вы хотите узнать.Сервер должен отправить обратно заголовок длины содержимого в своем ответе, указав размер файла в октетах (байтах).

Сервер не обязательно отправляет заголовок длины содержимого.Если этого не произойдет, то единственный вариант - загрузить файл полностью.

...