Просмотр полной версии : Как перенести большие файлы с чужого сайта?
Как перенести большие файлы с чужого сайта на свой сайт? Желательно чтобы скрипт работал так:
1) указываешь абсолютный путь папки куда нужно положить большой файл
2) указываешь ссылку на этот большой файл
3) запускаешь скрипт и он уже закачивает большие файлы на сайт
Pashkela
07.07.2009, 19:08
<?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
Спасибо! с некоторых сайтов так можно копировать, а с других сайтов при копировании появляется ошибка
"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!"
Pashkela
07.07.2009, 19:52
allow_url_fopen в php.ini должны быть ON
а с некоторых других сайтов вполне возможно проверят рефер, браузер, IP и тому подобное, так что вероятно надо посылать дополнительные заголовки (или куки требует, например)
Т.е. есть програмное ограничение на доступ для скачивание файла. Каждый случай - индивидуальный подход, в принципе
хотел бы добавить что в виндовсе при удачном копировании будет возвращать die('URL not found!');
Pashkela
07.07.2009, 20:01
хз, на linux тестил
это так называемый `баг` ф-ии копи
heretic1990
07.07.2009, 20:29
так ещё можно:
<?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);
?>
для разнообразия fetch/wget ;) понадежднее скриптов будут + поддержка докачки.
.htaccess v koren stav i razreshai direktivu allow http
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot