關於springmvc的文件下載簡析


1.文件下載思路:

   點擊下載操作后,會將前端的數據傳輸到Controller,根據獲得的數據(可能是文件id,文件name等等)去數據庫

詢出文件的具體信息(文件的類型,文件的存儲路徑,文件大小等等),然后根據文件的路徑,用輸入流去讀取數據,

通過HttpServletResponse對象response.getOutputStream得到一個輸出流, 然后以流的形式將數據返回到瀏覽器。

需要設置頭信息,去告知瀏覽器此次行為是下載。

  1.獲取文件相關信息

    例如:文件的ID、文件的實際名稱、文件的類型、文件的實際存儲路徑、文件的大小等(根據實際情況獲取)

  2.設置文件下載名稱(需要有表示文件類型的后綴:.png/.gif/.pig等)

    

  3.處理中文 下載名稱 亂碼問題

    HttpServletRequest  req   msie:IE瀏覽器

    通過req去獲得瀏覽器的類型,根據瀏覽器類型設置不同的編碼方式

    

  4.設置響應頭信息

    response.setContentType("image/jpg") 根據文件實際類型進行設置

    response.setHeader("Content-Disposition","attachment;filename="+filename):彈框效果,並設置下載文件名

    //response.setContentLength(len);

    //response.setCharacterEncoding(charset);

  5.根據文件url,使用輸入流讀取文件

    InputStream is = new FileInputStream(new File(url));

    OutputStream os = response.getOutputStream();

    IOUtils.copy(is, os);

    //將數據以流的形式返回到瀏覽器

  6.關流(遵守 先開后關的原則)

    先創建的流后關閉

  這是一個簡單的下載實現,下載tomcat上images文件夾下的FirstPS.jpg文件,文件信息直接在Controller處進行設置

   

  這個是下載網絡上的一張圖片的代碼

  

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM