Ошибка 0 байт при сохранении изображения на локальный или другой сервер

function grab_image($url, $saveto){
$url = $url;
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$raw = curl_exec($ch);
curl_close ($ch);
if(file_exists($saveto)){
unlink($saveto);
}
$fp = fopen($saveto, 'w');
fwrite($fp, $raw);
fclose($fp);
}
$link = 'https://images-na.ssl-images-amazon.com/images/I/415lKuJC%2B2L.jpg';
grab_image($link, '/tmp/415lKuJC%2B2L.jpg');

Ошибка при сохранении в локальный файл (0 байт), я думаю, что эта ссылка имеет специальный символ% 2B

1

Решение

Попробуйте добавить имя файла в вызове функции, например:

grab_image($link, "/tmp/new_file_name.jpg");
0

Другие решения

Альтернативное решение для захвата файла с оригинальным именем файла:

function grab_image($url, $savePath = getcwd())
{
$path = $savePath.'/'.basename($url);
if (file_exists($path)) {
unlink();
}
copy($url, $path);
}

$link = 'https://images-na.ssl-images-amazon.com/images/I/415lKuJC%2B2L.jpg';
grab_image($link);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector