从谷歌+下载profilepic时下载无法正常工作

时间:2018-04-04 06:49:33

标签: php download header php-5.6

这里我有谷歌+图片propic网址https://lh4.googleusercontent.com/-s6QeMfcJfdA/AAAAAAAAAAI/AAAAAAAAAAs/p4PXN5-Z6KE/photo.jpg?sz=50,现在我想下载这张图片并移动到一个文件夹,我试图下载但是下载正在发生但图片没有显示,它显示空文件,如果有人意味着仁慈地更新我的代码

    $data = file_get_contents('https://lh4.googleusercontent.com/-s6QeMfcJfdA/AAAAAAAAAAI/AAAAAAAAAAs/p4PXN5-Z6KE/photo.jpg?sz=50');
$filename ='image';
//header('Content-Type: "'.$mime.'"');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Pragma: no-cache');
header("Content-Length: ".strlen($data));
exit($data);

1 个答案:

答案 0 :(得分:1)

当您尝试下载图片时,您还需要使用文件名提供.jpg这样的扩展名。你也使用php 5.6,所以你应该将verify_peer_name设置为false:“verify_peer_name”=> false

http://php.net/manual/en/migration56.openssl.php

$files_content_extra=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);  
$data = file_get_contents('https://lh4.googleusercontent.com/-s6QeMfcJfdA/AAAAAAAAAAI/AAAAAAAAAAs/p4PXN5-Z6KE/photo.jpg?sz=50', false, stream_context_create($files_content_extra));
$filename ='image.jpg'; // change this line
//header('Content-Type: "'.$mime.'"');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Pragma: no-cache');
header("Content-Length: ".strlen($data));
exit($data);