Поврежденное изображение при автоматической загрузке с использованием URL с curl в php - PullRequest
0 голосов
/ 21 ноября 2018

Я хочу загружать изображения с моего сервера, ничего не щелкая - при запуске моего php-файла он загружается автоматически, но проблема в том, что файл поврежден.Однако когда я вставляю URL прямо в браузер и загружаю, он работает отлично.Так почему моя реализация ниже не работает?Есть идеи по этому поводу?

Вот мой код:

$url_to_image = 'https://hideserver.com/axul-display/assets/ads/';
$ch = curl_init($url_to_image);
$my_save_dir = 'assets/ads/';
$filename = basename($url_to_image.'ads-id-4.gif');
$complete_save_loc = $my_save_dir . $filename;
$fp = fopen($complete_save_loc, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, FALSE);
curl_exec($ch);
curl_close($ch);
fclose($fp);

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Привет всем благодаря вашей помощи, но я решил свою проблему вместо curl. Я использовал этот очень простой код.

$ image_url = 'http://server***.com/axul-display/assets/ads/ads-id-4.gif';

file_put_contents('assets/ads/ads-id-4.gif', file_get_contents($image_url));

Большое спасибовсе!

0 голосов
/ 21 ноября 2018

Со ссылкой на ответ, опубликованный на php - Как принудительно загрузить файл?

Вместо вызова curl используйте заголовки для загрузки файла.

$file_name = 'ads-id-4.gif';
$file_url = 'https://hideserver.com/axul-display/assets/ads/' . 
$file_name;
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"".$file_name."\"");
readfile($file_url);
exit;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...