我有一个类允许我使用 php curl 下载图像。我的课看起来像这样:
function getImage($img, $path) {
$fullpath = basename($img);
$ch = curl_init($img);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$rawData = curl_exec($ch);
curl_close($ch);
if(file_exists($fullpath)) {
unlink($fullpath);
}
$fp = fopen($path.$fullpath, "w+");
fwrite($fp, $rawData);
fclose($fp);
}
这对大多数图像都适用,但也有一些情况下我会得到损坏的图像。我试过从网站检查图像的路径,它是正确的。我的问题是,为什么会发生这种情况,如何防止下载的图像损坏?