2012-02-11 47 views
0

图像下载不起作用。它直接读取而不是下载。图像下载不起作用。它直接读取

if($_REQUEST['image'] == true){ 

    $URl = $post->guid; 
    echo $URl; 
    header("Content-Type: image/png"); 
    header('Content-Description: File Transfer'); 
    header("Cache-Control: no-cache, validated"); 
    header('Content-Type: application/octet-stream'); 
    header("Content-Disposition: attachment; filename=\"".basename($URl)."\""); 
    header('Content-Transfer-Encoding: binary'); 
    var_dump(readfile($URl)); 
    die; 
} 
+0

[变量是大小写敏感的(http://php.net/manual/en/language.variables.basics.php)。将'$ URl'更改为'$ URL'(注意Ls?)。 – Josh 2012-02-11 06:18:11

+0

我做了,但没有工作.... – ayyan 2012-02-11 06:36:25

+0

什么是“不工作”? – zerkms 2012-02-11 06:45:14

回答

0

尝试这个报头格式,

header("Content-type: application/octet-stream"); 
header("Content-Length: " . filesize($filename)); 
header("Content-Disposition: attachment; filename=$filename"); 
header('Content-Transfer-Encoding: binary'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
fpassthru($fp); 
+0

Avinash我替换,但现在我也得到了一个相同的输出阅读图像,直接它不会得到下载...... – ayyan 2012-02-11 06:51:09

+0

更新内容类型为“application/octet-stream”。因为你不能保证弹出框,这一切都取决于客户端的browswer软件如何处理这种特定的MIME类型。 – Avinash 2012-02-11 07:10:54

+1

将图像链接到一个zip文件,然后它会下载。 – 2012-02-11 19:32:40