Автор Тема: закачка файла с другого сервера на свой сервер  (Прочитано 9493 раз)

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

Оффлайн RelaX

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 0
    • Просмотр профиля
мне надо сделать скрипт, который выполняет следующее:
я указываю URL нужного мне файла, а скрипт потом скачивает этот файл в указанную директорию сервера, на котором располается данных скрипт....

возможно ли такое?

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Да возможно:


$fp 
fopen ("/home/rasmus/file.txt""r");
$fp fopen ("/home/rasmus/file.gif""wb");
$fp fopen ("http://www.php.net/""r");
$fp fopen ("ftp://user:password@example.com/""w");
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
с уважением,
магистр белой магии.

Оффлайн RelaX

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 0
    • Просмотр профиля
Dm

это работает только на одном сервере, с другого сервера нияего не качает :(

Оффлайн Lion

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 474
  • +0/-0
  • 0
    • Просмотр профиля
Может хостинг бесплатный ? => исходящие соединения прикрыты...

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Lion
Логично :)
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн RelaX

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 0
    • Просмотр профиля
Lion

нет, хостинг платный....

Оффлайн Lion

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 474
  • +0/-0
  • 0
    • Просмотр профиля
Цитировать
нет, хостинг платный....

Кто конкретно ?

Оффлайн RelaX

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 0
    • Просмотр профиля
Lion

http://www.ur.ru (лучший хостинг в Уральском Регионе), траффик с этого сервера считается как городской (т.е. меньше всего надо будет платить за "выкачанный" файл :) )
« Последнее редактирование: 22 Марта 2002, 18:36:06 от RelaX »

Оффлайн RelaX

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 0
    • Просмотр профиля
пишет такую ошибку:
Warning: Supplied argument is not a valid File-Handle resource in /usr/var/spool/web/aderus/site/www/2/1.php on line 10

сам скрипт выглядит так (на сервереве veer.net-burg.net все работает нормально):

<?
      
   
// открыли соединение
   
$so fsockopen("veer.net-burg.net"80, &$errno, &$errstr30);
   
// послали GET форму (простой URL + указание вирт. хоста)
   
fputs($so,"GET /1/notepad.exe HTTP/1.0\\nHOST: veer.net-burg.net\\n\\n");

   
// читаем все, пока не наступит "конец заголовка" (т.е. начало документа)
   // если наступит, то со след. байта начнется документ
   
while(fgets($so,2048)!="\\r\\n" && !feof($so));
   
   unset(
$buf);
   
// читаем документ в переменную
   
while(!feof($so)) $buf.=fread($so,2048);
   
// Готово. В переменной $buf храниться скаченный документ (т.е. файл)
   // Максимум можно читать порциями по 64K-1байт

   // закрываем сокет
   
fclose($so);
   echo 
"Download fine, size ".strlen($buf)." bytes."flush();

   
// используем скаченный файл (в переменной) по назначению...
   
$f=fopen("download.tmp","wb+");
   
fwrite($f,$buf,strlen($buf));
   
fclose($f);
   
?>

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
это работает только на одном сервере, с другого сервера ничего не качает

чем отличаются серверы?
с уважением,
магистр белой магии.

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Здравствуйте!
Попробовал поюзать скрипт. Вроде бы как работает, а вродеб и нет.
Выдаёт сообщение об ошибке
Notice: Undefined variable: buf in z:\\home\\cjs.ru\\www\\upload.phtml on line 14
Download fine, size 5320099 bytes.

При этом в корне где лежит файл закачки, туда падает и файл download.tmp
Размер соответствует оригиналу, который закачивался.
Имя и расширение меняю на оригинальное (вручную) и файл удобоваримый, распаковывается нормально (оригинал - архив).

Далее не могу разобраться:
Почему скрипт выдаёт "Неопределенная переменная", если временный файл рисуется ?
line 14   -----  while(!feof($so)) $buf.=fread($so,2048);
Почему скрипт не создаёт файл с оригинальным именем?


скрипт запускаю через IE. Полностью листинг файла скрипта:

// открыли соединение
$so = fsockopen("pirk.ru", 80, &$errno, &$errstr, 30);
// послали GET форму (простой URL + указание вирт. хоста)
fputs($so,"GET /www1.rar HTTP/1.0\\nHOST: pirk.ru\\n\\n");

// читаем все, пока не наступит "конец заголовка" (т.е. начало документа)
// если наступит, то со след. байта начнется документ
while(fgets($so,2048)!="\\r\\n" && !feof($so));

unset($buf);
// читаем документ в переменную
while(!feof($so)) $buf.=fread($so,2048);
// Готово. В переменной $buf храниться скаченный документ (т.е. файл)
// Максимум можно читать порциями по 64K-1байт

// закрываем сокет
fclose($so);
echo "Download fine, size ".strlen($buf)." bytes."; flush();

// используем скаченный файл (в переменной) по назначению...
$f=fopen("download.tmp","wb+");
fwrite($f,$buf,strlen($buf));
fclose($f);

?>

Спасибо!
С уважением, Дмитрий

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Если я правильно понимаю, строка 14 выдаёт ошибку, потому как цикл начинается, а используется, прибавляется к переменной $buf , которая ранее не была инициализирована.
С этим разобрался. Добавил перед циклом строчку $buf = "";

С download.tmp вродеб тоже всё ясно.

Сейчас в другое упёрся.
1. Запускаю ест через IE. При запуске переодически выкидывает сообщение типа: "не удалось открыть узел http://cjs.ru/upload.phtml" , ну т.е. урл скрипта. Обычно при объёме файла более 5Мб. А мне надо полсотни Мб!. В чём причина не понятна?
Или другой вариант.
2. Браузер выдаёт превышен 30 секундный таймаут (не знаю где это рулить).
Подсобите, плз.
Спасибо.
С уважением, Дмитрий

Оффлайн Lutik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 184
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.galiongroup.ru
1) А нече что есть предел для темп фаилов?
upload_max_filesize этот параметр проверь! phpinfo()
2) set_time_limit()
Разум когда-нибудь победит

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Так, спасиб, начинаю догонять.
По 2) куда в скрипте это поставить. Или что то не то леплю :)
С уважением, Дмитрий

 

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