2016-11-25 132 views
0

我想将图像从VK保存到文件夹。但是图像不能正确保存。PHP Curl保存来自VK的动态图像

我使用的代码是:

// imageFromURL (Save an image from a URL) 
function imageFromURL($url,$saveto){ 
    $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,'x'); 
    fwrite($fp, $raw); 
    fclose($fp); 
} 

imageFromURL('https://vk.com/captcha.php?sid=698254154192&s=1', 'Image/Captcha.png'); 

我想那一定不会是一个标准的图像格式?我怎么能保存这个,并确保它是一个CURL格式的图像?

+0

当我运行这个,图像正确保存到图像文件夹。然后我可以打开并查看它。这是什么让你觉得它不是储蓄? – WEBjuju

+0

这很奇怪,也许这是PHP版本或允许需要改变的设置。 – zeddex

回答

0

您可以使用exif_imagetype($image)来返回文件的图像类型。 PNG将返回3.

此外,可以节省前检查:

$mime_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); 

并检查MIME类型,你可能会寻找。请注意,由于您依靠远程服务器正确报告该信息,因此需要进行一些信任。

+0

有什么办法强制使用CURL的图像头? – zeddex

+0

我修改了我的答案,希望有所帮助。 –