1. 程式人生 > >Java web 關於檔案下載的一點理解

Java web 關於檔案下載的一點理解

今天在,解決一個關於匯出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