圖片顯示與下載

請多時候你會發現瀏覽器便可顯示圖片(文件),也可提供圖片(文件)下載。到底如何實現?什麼代碼控制的呢?瀏覽器

關鍵技術點

  • 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

相關文章
相關標籤/搜索