Как перенести большие файлы с чужого сайта?

Discussion in 'PHP' started by Ridikh, 7 Jul 2009.

  1. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    Как перенести большие файлы с чужого сайта на свой сайт? Желательно чтобы скрипт работал так:
    1) указываешь абсолютный путь папки куда нужно положить большой файл
    2) указываешь ссылку на этот большой файл
    3) запускаешь скрипт и он уже закачивает большие файлы на сайт
     
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <?php 
    @set_time_limit(0);
    ignore_user_abort(1); 
    @
    ini_set("display_errors","1");
    $url 'http://site/03.mp3';
    $local_file '123.mp3';
    copy($url,$local_file) or die('URL not found!');
    echo 
    "Saved in $local_file";
    ?>
    Проверял не 20-мегабайтном mp3
     
  3. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    Спасибо! с некоторых сайтов так можно копировать, а с других сайтов при копировании появляется ошибка

    "Warning: copy(http://site.ru/1.mp3) [function.copy]: failed to open stream: HTTP request failed! HTTP/1.1 403 Not Allowed in /home/***/www/***/public_html/1.php on line 7"

    а иногда еще появляется "URL not found!"
     
    #3 Ridikh, 7 Jul 2009
    Last edited: 7 Jul 2009
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    allow_url_fopen в php.ini должны быть ON

    а с некоторых других сайтов вполне возможно проверят рефер, браузер, IP и тому подобное, так что вероятно надо посылать дополнительные заголовки (или куки требует, например)

    Т.е. есть програмное ограничение на доступ для скачивание файла. Каждый случай - индивидуальный подход, в принципе
     
    #4 Pashkela, 7 Jul 2009
    Last edited: 7 Jul 2009
  5. 159932

    159932 Elder - Старейшина

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    хотел бы добавить что в виндовсе при удачном копировании будет возвращать die('URL not found!');
     
  6. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    хз, на linux тестил
     
  7. 159932

    159932 Elder - Старейшина

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    это так называемый `баг` ф-ии копи
     
  8. heretic1990

    heretic1990 Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    так ещё можно:
    PHP:
    <?php 
    set_time_limit
    (0);
    $download 'http://site/0000.mp4'////////линк
    $save '0000.mp4'////////имя файла
    $str''///////папка куда качаем

    $d fopen($download,'r'); 
    $s fopen($save,'w+'); 

    while(!
    feof($d)) 

          
    $str fread($d,512); 
          
    fputs($s,$str); 

    fclose($d); 
    fclose($s); 

    ?>
     
  9. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    для разнообразия fetch/wget ;) понадежднее скриптов будут + поддержка докачки.
     
    _________________________
  10. [QwyZ]

    [QwyZ] Banned

    Joined:
    7 Jul 2009
    Messages:
    71
    Likes Received:
    27
    Reputations:
    5
    .htaccess v koren stav i razreshai direktivu allow http