Автор Тема: Имя получаемого файла.  (Прочитано 4634 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Cardy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
Имя получаемого файла.
« : 28 Февраля 2003, 16:35:57 »
Есть проблемка, решение которой я так и не нашел ни в манах ни в инете.
От пользователей приходят URl для скачивания. Требуется узнать конечное имя получаемого файла.
К примеру имеем запрос:
http://www.google.com/
так вот нужно конечное имя файла (без его закачки)
index.htm
И главное - чтобы распознавались вот такие урлы:
http://www.softodrom.ru/get.php?id=1706&action=dl
который вообще должен возвращать имя wwr_rus.rar

Заранее премного благодарен за ответы.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Имя получаемого файла.
« Ответ #1 : 28 Февраля 2003, 17:05:53 »
Я немного не уловил суть вопроса.
Тебе нужно из http://www.test.com/test.jpg забрать только test.jpg?
Или что другое? Пиши подробнее, будет проще ответить.
The documentations is your friend

Оффлайн Cardy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
Имя получаемого файла.
« Ответ #2 : 28 Февраля 2003, 17:35:40 »
Почти. Точнее - я получаю запрос вида http://www.test.com/ - т.е. мне не известен имя файла, кот. мне отдаст сервер (index.htm, default.htm ...)
так вот хочется его таки узнать не скачивая. и во втором случае - я получаю URL (http://www.softodrom.ru/get.php?id=1706&action=dl), кот. на самом деле приводит к файлу под именем wwr_rus.rar. Вот эти-то мне имена и нужны до закачки их к себе.

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Имя получаемого файла.
« Ответ #3 : 28 Февраля 2003, 18:38:26 »
Придется делать запрос на сервер и обрабатывать заголовки сервера типа "302 Moved" и "Location" или "Content-Location".
ИМХО, нужно смотреть доки по LWP::UserAgent, HTTP::Response или Net::HTTP.
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн Cardy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
Имя получаемого файла.
« Ответ #4 : 28 Февраля 2003, 19:23:23 »
Насколько я понял из прочтения этих манов там без HTTP::Request->new(GET $url) не обойтись. В принципе вот этот код выдает то, что нужно:
my $ua = LWP::UserAgent->new();
my $req = HTTP::Request->new(GET => $url);
my $response = $ua->request($req);
printf "%s", $response->base();

но я так и не понял скачивает ли он при этом файл или нет. Судя по продолжительности ответа - скачивает. Кто-нить подскажет так ли это? И как подправить, чтобы не скачивал?

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Имя получаемого файла.
« Ответ #5 : 28 Февраля 2003, 19:37:41 »
Цитировать
Судя по продолжительности ответа - скачивает. Кто-нить подскажет так ли это? И как подправить, чтобы не скачивал?

Скачивает. Попробуй вместо GET использовать HEAD.
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн Cardy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
Имя получаемого файла.
« Ответ #6 : 28 Февраля 2003, 19:45:04 »
YES!!!
Big THANKS!!!

PS Будешь в питере - с меня пиво!
=)

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Имя получаемого файла.
« Ответ #7 : 28 Февраля 2003, 20:01:45 »
Цитировать
Будешь в питере - с меня пиво!
=)

[OFF]Так-с... Где мой календарь? ;) :D[/OFF]
[ основной браузер когда-то был, теперь попробуй разберись =]

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28