//返回的文件類型Content-Type:image/jpg Content-Type:html/txt
header("Content-type: application/octet-stream");
//當你在響應(yīng)類型為application/octet- stream情況下使用了這個頭信息的話外邓,那就意味著你不想直接顯示內(nèi)容饶深,而是彈出一個"文件下載"的對話框台妆,接下來就是由你來決定"打開"還是"保存" 了。
//按照字節(jié)大小返回
header("Accept-Ranges: bytes");
//返回文件大小
header("Accept-Length: $file_size");
//客戶端的彈出對話框肺蔚,對應(yīng)的文件名 (中文字符需要轉(zhuǎn)一下編碼)
header("Content-Disposition: attachment; filename=".$file['file_name']);
//禁止瀏覽器緩存
header("Pragma : No-cache");
header("Expires : 0");
header("Cache-Control : No-cache");
Content-disposition 是 MIME 協(xié)議的擴展梨熙,MIME 協(xié)議指示 MIME 用戶代理如何顯示附加的文件。Content-disposition其實可以控制用戶請求所得的內(nèi)容存為一個文件的時候提供一個默認的文件名,文件直接在瀏覽器上顯示或者在訪問時彈出文件下載對話框熄阻。
格式說明: content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )
字段說明:Content-Disposition為屬性名disposition-type是以什么方式下載,如attachment為以附件方式下載disposition-parm為默認保存時的文件名服務(wù)端向客戶端游覽器發(fā)送文件時倔约,如果是瀏覽器支持的文件類型秃殉,一般會默認使用瀏覽器打開,比如txt浸剩、jpg等钾军,會直接在瀏覽器中顯示,如果需要提示用戶保存绢要,就要利用Content-Disposition進行一下處理吏恭,關(guān)鍵在于一定要加上attachment:復(fù)制代碼 代碼如下:
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");
備注:這樣瀏覽器會提示保存還是打開,即使選擇打開重罪,也會使用相關(guān)聯(lián)的程序比如記事本打開樱哼,而不是IE直接打開了哀九。Content-Disposition就是當用戶想把請求所得的內(nèi)容存為一個文件的時候提供一個默認的文件名。
那么由上可知具體的例子: Content-Disposition: attachment; filename="filename.xls"當然filename參數(shù)可以包含路徑信息搅幅,但User-Agent會忽略掉這些信息阅束,只會把路徑信息的最后一部分做為文件名。
當你在響應(yīng)類型為application/octet- stream情況下使用了這個頭信息的話茄唐,那就意味著你不想直接顯示內(nèi)容息裸,而是彈出一個"文件下載"的對話框,接下來就是由你來決定"打開"還是"保存"了沪编。