請多時候你會發現瀏覽器便可顯示圖片(文件),也可提供圖片(文件)下載。到底如何實現?什麼代碼控制的呢?瀏覽器
HTTP響應頭屬性
一、Content-Type
二、Content-Disposition (提供下載的實現)
三、Content-Lengthcode
實現代碼以下圖片
$file = './img/fang.jpg'; $mode = 'rb'; header('Content-Disposition:Attachment;filename='.basename($file)); $finfo = new Finfo(FILEINFO_MIME_TYPE); $mime = $finfo->file($file); header('Content-Type: '.$mime); header('Content-Length:'.filesize($file)); $handle = fopen($file, $mode); while(!feof($handle)){ echo fgets($handle, 1024); }
注意
在IE中,沒有header('Content-Disposition:Attachment;filename='.basename($file));
這句代碼也可實現下載,只要header('Content-Type:image/jpg');
就會提供下載get
實現代碼以下it
$file = './img/fang.jpg'; $mode = 'rb'; $finfo = new Finfo(FILEINFO_MIME_TYPE); $mime = $finfo->file($file); header('Content-Type: '.$mime); header('Content-Length:'.filesize($file)); $handle = fopen($file, $mode); while(!feof($handle)){ echo fgets($handle, 1024); }
注意
在IE中,上面代碼會沒有效果(依然是下載),在IE中,要顯示必須header('Content-Type: text/plain');
不能設爲image/jpg
,這種作法不止兼容IE,其餘瀏覽器也兼容。io
還有一種方法
直接訪問圖片地址file