Изображение копии от удаленного сервера по HTTP

alleyoop и valkyrie являются альтернативными интерфейсами.

Может хватить поддержки для того, что вы хотите, вы можете использовать mingw для компиляции под Windows, если SUA не работает «из коробки».

79
задан GiladG 28 June 2009 в 00:47
поделиться

7 ответов

Если на вашем сервере включен PHP5 и оболочка потока HTTP, невероятно просто скопировать его в локальный файл:

copy('http://somedomain.com/file.jpeg', '/tmp/file.jpeg');

Это позаботится о любой необходимой конвейерной обработке и т. Д. Если вам нужно предоставить некоторые параметры HTTP, вы можете предоставить третий параметр «контекста потока».

149
ответ дан 24 November 2019 в 10:08
поделиться

Поскольку вы пометили свой вопрос как «php», я предполагаю, что у вас запущен php на вашем сервере. Лучше всего, если вы управляете своим собственным веб-сервером, а затем скомпилируете cURL в php. Это позволит вашему веб-серверу делать запросы к другим веб-серверам. Это может быть довольно опасно с точки зрения безопасности, поэтому у большинства основных провайдеров веб-хостинга этот параметр не включен.

Вот справочная страница php по использованию cURL . В комментариях вы можете найти пример, который загружается, и файл изображения.

Если вы не хотите использовать libcurl, вы можете написать что-нибудь с помощью fsockopen. Он встроен в php (но может быть отключен на вашем хосте) и может напрямую читать и писать в сокеты. См. Примеры на странице руководства fsockopen .

0
ответ дан 24 November 2019 в 10:08
поделиться

Используйте запрос GET, чтобы загрузить изображение и сохранить его в веб-каталог на вашем сервере.

Поскольку вы используете PHP, вы можете использовать curl для скачивать файлы с другого сервера.

0
ответ дан 24 November 2019 в 10:08
поделиться

Вот самый простой способ:

$url = "http://other-site/image.png";
$dir = "/my/local/dir/";

$rfile = fopen($url, "r");
$lfile = fopen($dir . basename($url), "w");

while(!feof($url)) fwrite($lfile, fread($rfile, 1), 1);

fclose($rfile);
fclose($lfile);

Но если вы делаете много-много этого (или ваш хост блокирует доступ к файлам удаленным системам), рассмотрите возможность использования CURL, который более эффективен, немного быстрее и доступен на большем количестве общих хостов.

Вы также можете подделать пользовательский агент, чтобы он выглядел как рабочий стол, а не как бот!

4
ответ дан 24 November 2019 в 10:08
поделиться

У вас есть четыре возможности:

7
ответ дан 24 November 2019 в 10:08
поделиться

PHP имеет встроенную функцию file_get_contents (), которая считывает содержимое файла в строку.

  http://example.com/image.jpg "); 

// Сохранение в файловой системе. $ fp = fopen ("/ местоположение / в / сохранить / изображение.jpg", "ш"); fwrite ($ fp, $ content); fclose ($ fp); ?> Если вы хотите сохранить файл в базе данных, просто используйте переменную $ content и не сохраняйте файл на диск.

10
ответ дан 24 November 2019 в 10:08
поделиться

Очень просто использовать file_get_contents . Просто укажите URL-адрес в качестве первого параметра.

2
ответ дан 24 November 2019 в 10:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: