1. 程式人生 > >php header()函式實現下載功能

php header()函式實現下載功能


1、
<?php
    header('Content-Disposition:attachment'); 
    readfile("w.jpg");
?>


header('Content-Disposition: attachment'); 設定 http  報文頭,告訴瀏覽器它所接收的檔案的 Content-Disposition 屬性為 attachment ,這樣瀏覽器將直接顯示接收的內容,而是將接收的內容儲存到磁碟。
執行指令碼將會彈出下載對話方塊,提示儲存檔案,儲存的檔名為該指令碼的檔名。
<?php
    header('Content-Disposition:attachment;filename:w.jpg'); 
    readfile("w.jpg");
?>


filename:w.jpg指定儲存檔名為w.jpg
2、
<?php 
    readfile("w.jpg");
?>


瀏覽器顯示亂碼。
<?php 
    readfile("w");
?>


w 和 w.jpg 是同一個檔案,只是去掉了 .jpg 字尾。瀏覽器同樣顯示亂碼。
可是直接將 檔案 w 用瀏覽器開啟或window自帶的圖片瀏覽器開啟將會正常顯示圖片。說明本地檔案 w 用瀏覽器開啟時是通過檔案內部的標識來判斷檔案型別,並解析出來顯示。
3、
下面的程式碼可在瀏覽器直接顯示(圖片、pdf 等)。
<?php
header("Content-Type:image/jpeg");
readfile("w");//w為圖片檔案
?>


Content-Type:image/jpeg 告訴瀏覽器這是一張圖片,你老老實實將它解析出圖片顯示出來。
如果出現下面的情況:
<?php
header("Content-Type:application/pdf");
readfile("w");//w為圖片檔案
?>


瀏覽器看到 Content-Type:application/pdf 後,就知道自己接收的內容是一個pdf檔案,就按照pdf來解析,但人家 w 明明不是 pdf 啊,沒辦法,按規定來,各種亂碼輸出。