Java web 關於檔案下載的一點理解
阿新 • • 發佈:2018-12-20
今天在,解決一個關於匯出SQL資料,生成excle檔案中
參考了這篇文章:跳轉
1.Content-Disposition
response.setHeader("Content-Disposition",
"attachment;fileName=" +
URLEncoder.encode("test"+".xls", "UTF-8"));
Content-disposition是 MIME 協議的擴充套件,MIME 協議指示 MIME 使用者代理如何顯示附加的檔案。當 Internet Explorer 接收到頭時,它會啟用檔案下載對話方塊
,它的檔名框自動填充了頭中指定的檔名
2.application/binary
response.setContentType(MIME)的作用是使客戶端瀏覽器,區分不同種類的資料,並根據不同的MIME呼叫瀏覽器內不同的 程 序嵌入模組來處理相應的資料。例如web瀏覽器就是通過MIME型別來判斷檔案是GIF圖片
像,Excle的.xls 我測試了使用 application/binary,和application/vnd.ms-excel都可以成功,關於檔案型別,可以百度,不過在tomcat的conf中web.xml中有說明,關於各種檔案型別的ContentType指定
response.setContentType("application/vnd.ms-excel;
charset=UTF-8");
// application/binary
3.要想生成檔案,資料內容要寫入響應流中,
流的問題我也不是很懂,在這裡,用了 ServletOutputStream
所以,關於檔案下載,
1.Content-Disposition ==> 告訴瀏覽器我要下載
2.application/binary ==> 指定下載名和下載型別
3.資料內容寫入響應流中
4.這是個人理解
完整程式碼: https://github.com/19971020jxh/SQL_Excle.git