За последние 24 часа нас посетили 34674 программиста и 1695 роботов. Сейчас ищут 903 программиста ...

Получение скриптом файла с сайта http://torrents.ru

Тема в разделе "PHP для новичков", создана пользователем Adamant, 23 мар 2009.

  1. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    Народ подскажите!! Делаю курлом запрос на http://torrents.ru запрос на загрузку файла. Все проходит нормально. В браузер выводилось диалоговое окно с предложением сохранить торрент файл. Но сохраняется на диск пустой (или размером в 1КБ) файл.

    PHP:
    1.  
    2. <?
    3. $result = $curl->curl_post($query_torrent_file, $post_data, $url_user);
    4.  
    5. header("Transfer-Encoding: chunked");
    6. header('Content-Type: application/x-bittorrent; name="[torrents.ru].'
    7.         . str_replace('-', '', $torrent_uri) . '.torrent" content-disposition: attachment; filename="[torrents.ru].'
    8.         . str_replace('-', '', $torrent_uri) . '.torrent"');
    9. header("Content-Length: "  . strlen($result));
    10.  
    11. echo $result;
    12. ?>
    13.  
    Что не так?
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    так ты торент и качешь, а надоть тебе торент-клиента ставить и тогда торент-клиент тебе файлик выкачеет.
     
  3. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    Нет, если это делать из браузера. То этот торрент-файлик (43Кб) качается нормально. И его то мы и указываем торрент клиенту. Для скачивания им самого файла. Если заголовки перед echo $result; не ставить То этот файлик выводится в браузер.
     
  4. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Смотри заголовки которые получаешь от torrents.
    и фраза "То этот файлик выводится в браузер." не понятна, выводиться правильный файлик?
     
  5. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    Кстати попробовал выдаваемый файл сохранить сразу без вывода в браузер в файл он сохраняется один в один.
    Так что дело в заголовках, о помощи в составлении которых я и прошу. [​IMG]
     
  6. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Смотри какие заголовки получаешь когда через браузер забираешь файл.и скопируй их.
     
  7. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    Alost эти заголовки я привел в первом моем посте, о результате вы уже знаете.
     
  8. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    В первом посте ты показал код который вводит эти заголовки,с переменными которые не присвоены в скрипте.
    Сравни ответ сервера с твоим ответом по такому коду
    PHP:
    1.  
    2. <?
    3. $result = $curl->curl_post($query_torrent_file, $post_data, $url_user);
    4.  
    5. echo "Transfer-Encoding: chunked\n";
    6. echo 'Content-Type: application/x-bittorrent; name="[torrents.ru].'
    7.         . str_replace('-', '', $torrent_uri) . '.torrent" content-disposition: attachment; filename="[torrents.ru].'
    8.         . str_replace('-', '', $torrent_uri) . '.torrent"'."\n";
    9. echo "Content-Length: "  . strlen($result))."\n";
    10.  
    11.  
    12. ?>
    13.  
    Уже эта строчка должна была заинтересовать-"Transfer-Encoding: chunked".
     
  9. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    Если вас смущает наличие $torrent_uri - я не привожу весь код сверху над этим "фрагментом" (а зачем). Меня интересовало составления нужных заголовков которые смогут получить нужный результат.

    Тему можно финализировать. Сам разберусь на досуге.
     
  10. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    Все просто оказалось:
    PHP:
    1.  
    2. <?php
    3. ........
    4. ........
    5. $result = $curl->curl_post($query_torrent_file, 'sid=' . $matches[1], $url_user);
    6.  
    7. header("HTTP/1.1 200 OK");            
    8. header("Content-Type: application/x-bittorrent");
    9. header("Content-Disposition: attachment; filename='[torrents.ru]." . str_replace('=', '', $torrent_uri) . ".torrent'");
    10.  
    11. echo $result;
    12.