На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > как скачать неизвестный файл по .php ссылке
      Как получить имя файла скрывающегося за php скриптом.

      На пример:
      http://www.historyfoundation.ru/dl.php?file=756

      Подразумеваю что перед загрузкой нужно на этот скрипт послать какойто запрос...
      Но какой и как...?
      Сообщение отредактировано: duritskiy -
        t=4725534 - это и есть твой запрос,
        браузер сохраняет файл под именем [rutracker.org].t{$t}.torrent,
        то есть для t=4725534 имя файла будет выглядеть как [rutracker.org].t4725534.torrent
        Но это "художественная самодеятельность" браузера
        На самом деле никакого имени файла не существует - какое ты придумаешь - такое и будет. ПХП тебе отдает стрим http, который ты обязан сохранить. Куда его сохранять - твое дело, если в файл - то тоже, его имя - это твои проблемы.
        По http это выглядит приблизительно так - GET http://dl.rutracker.org/forum/dl.php?t=4725534 ---> 200 OK
        Больше нет там никаких имен файлов, только хардкор, только дата!
          Это все понятно.
          Но браузер всетаки както узнает имя.

          Если в браузере кликнуть
          http://www.historyfoundation.ru/dl.php?file=756

          то он предложит сохранить это в "document.pdf"
          Сообщение отредактировано: duritskiy -
            если в браузере кликнуть, то ничего не произойдет
            wget http://www.historyfoundation.ru/dl.php?file=756
            --2015-09-23 16:10:02-- http://www.historyfoundation.ru/dl.php?file=756
            Resolving www.historyfoundation.ru... 78.110.50.117
            Connecting to www.historyfoundation.ru|78.110.50.117|:80... connected.
            HTTP request sent, awaiting response... 502 Bad Gateway
            2015-09-23 16:10:02 ERROR 502: Bad Gateway.
              я знаю как это сделать.
              1) Нужно парсить HTTP заголовки
              2) в HTTP заголовке должна быть строка следующего вида
              user posted image
              другого пути, кроме как анализ HTTP заголовков, нет.
              Это можно делать эффективно с помощью libcurl
                Спасибо за совет.

                А чем ещё можно http заголовок запросить?
                Через CppWebBrowser можно как-нибудь?
                  Оказалось все просто:

                  ExpandedWrap disabled
                    AnsiString FileName;
                     
                        TMemoryStream * MS = new TMemoryStream();
                     
                       IdHTTP1->Get("http://www.historyfoundation.ru/dl.php?file=756",MS);
                     
                       //Memo1->Lines->Text=IdHTTP1->Response->ExtraHeaders->Text;
                     
                     
                       Memo1->Lines->Text=IdHTTP1->Response->ExtraHeaders->Values[IdHTTP1->Response->ExtraHeaders->IndexOfName("Content-Disposition")];
                     
                       TStringList *list=new TStringList;
                     
                       IdHTTP1->Response->ExtraHeaders->Extract("Content-Disposition",list);
                     
                       int pos=list->Strings[0].Pos("=");
                       FileName=list->Strings[0].SubString(pos+1,list->Strings[0].Length()-pos);
                     
                       MS->SaveToFile(FileName);
                     
                       delete MS;
                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0292 ]   [ 15 queries used ]   [ Generated: 18.05.24, 12:48 GMT ]