Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > Загрузка изображения с удаленного сервера


Автор: Rusman 13.4.2010, 10:09
Здравствуйте! Подскажите пожалуйста как реализовать загрузку удаленного изображения к себе на сервер:
Например есть адрес картинки:
 www.sites.ru/image.jpg
Нужно залить к себе на сайт в определенную паппку и с новым именем:
/images/newimage.jpg

Всем заранее спасибо!

Автор: dfgInUa 13.4.2010, 11:50
Можно так:

Код

<?php
$from = 'http://www.google.com/intl/en_ALL/images/logo.gif';
$to = $_SERVER['DOCUMENT_ROOT'] . '/pub/test.gif';

ob_start();
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $from);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_exec($ch);
  curl_close($ch);
  $file = ob_get_contents();
ob_end_clean();

$f = fopen($to, 'w');
fwrite($f, $file);
fclose($f);

Автор: Rusman 13.4.2010, 11:52
Все разобрался сам. Если вдруг кому нужно будет вот скрипт:
Код

$host="путь";//путь к файлу на сервере, с которого происходит 
$fileName="путь";// Имя файла, который будет сохранен на данном сервере

//закачка
$fp=fopen($fileName,"w");//создаем пустой файл
fclose($fp);
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $host);//запускаем сеанс curl
$fp=fopen($fileName,"w+");//открываем файл для записи
curl_setopt($ch, CURLOPT_FILE, $fp);// записываем в файл
curl_setopt($ch, CURLOPT_REFERER, $host);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_exec ($ch);//выполняем команды curl
curl_close ($ch);//завершаем сеанс curl
fclose ($fp);//закрываем файл

Автор: capitan 16.4.2010, 19:39
зачем столько манипуляций?
Код

$content = file_get_contents('путь к картинке');
file_put_contents($fileName, $content);

Автор: Elektronic201009 21.4.2010, 16:24
Спасибо большое за скрипт, а то я уже замучался с данным вопросом.

Автор: SickFxck 22.4.2010, 17:18
Цитата(capitan @  16.4.2010,  19:39 Найти цитируемый пост)
зачем столько манипуляций?

Затем, что в оперативную память весь файл никто не пихает. Но можно посоветовать было copy().

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)