Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Размер файла (как узнать)


Автор: AlexanderI 2.2.2006, 22:50
Подскажите как узнать размер файла, расположенный на другом сервере (например http://test.ru/2.zip).

Автор: NikolayBY 2.2.2006, 23:40
Я бы попробовал его начать закачивать либо средствами Винды, либо любой прогой закачки файлов. Почти всегда выдается размер. Но твоя ссылка не закачивается

Автор: AlexanderI 3.2.2006, 00:20
Ну она не закачивается потомучто это я для примера привёл. Там както средствами HEAD узнать можно.

Автор: korob2001 3.2.2006, 01:00
Юзай модуль LWP или LWP::Simple, например так можно получить head:
Код

#!/usr/bin/perl -w
use strict;
use LWP::Simple;

my $url = "http://denstelen.hop.ru/brussel/brussel1.jpg";
my $head = head($url);

while (my($key,$val) = each %$head) {
     if ( ref( $val ) ) {
          print $key;
          while (my($k,$v) = each %$val) {
                 print "\t$k => $v\n";
          }
     } else {
          print "$key => $val\n";
     }
}

Тебя интересует content-length.

Автор: Usya 4.2.2006, 06:12
AlexanderI, только не всегда такое подойдет.
Некоторые файлы тебе все-таки придется закачивать.
Хотя через head самый простой и безболезненный способ. Особенно чувствуется при больших размерах файлов.
Поэкспериментируешь – увидишь.
P/s
Однако есть еще один нюанс, с которым я так в свое время и не разобрался до конца: размер файла можно, в частности, узнать, если указать в строке адреса браузера только путь к папке (разумеется, если доступ открыт), но “head” при этом может и не выдать ничего интересующего при запросе.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)