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
尝试在函数调用中添加文件名,如下:
grab_image($link, "/tmp/new_file_name.jpg");
使用原始文件名获取文件的替代解决方案:
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);