久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

文件下載(只需要簡單的四步),,Java中都通用

 昵稱25684365 2015-11-04

我們就直接切入主題啦,文件下載只需要四步

1.設(shè)置文件ContentType類型

2.設(shè)置文件頭

3.通過response獲取ServletOutputStream對象(out)

4.寫到輸出流(out)中

 

下載代碼:

這里我使用的是SpringMVC,,不過它在這里的唯一用途就是用來獲取ServletContext對象,,這個對象的用途,下面實例中有說明

下載,,需要用到兩個jar包:commons-fileupload.jar和commons-io.jar

 

Java代碼  收藏代碼
  1. import org.springframework.stereotype.Controller;  
  2. import org.springframework.web.bind.annotation.RequestMapping;  
  3. import org.springframework.web.context.ServletContextAware;  
  4.   
  5. import javax.servlet.ServletContext;  
  6. import javax.servlet.ServletOutputStream;  
  7. import javax.servlet.http.HttpServletResponse;  
  8. import java.io.*;  
  9.   
  10. @Controller  
  11. public class FileController implements ServletContextAware{  
  12.     //Spring這里是通過實現(xiàn)ServletContextAware接口來注入ServletContext對象  
  13.     private ServletContext servletContext;  
  14.   
  15.   
  16.     @RequestMapping("file/download")  
  17.     public void fileDownload(HttpServletResponse response){  
  18.         //獲取網(wǎng)站部署路徑(通過ServletContext對象),用于確定下載文件位置,,從而實現(xiàn)下載  
  19.         String path = servletContext.getRealPath("/");  
  20.   
  21.         //1.設(shè)置文件ContentType類型,,這樣設(shè)置,會自動判斷下載文件類型  
  22.         response.setContentType("multipart/form-data");  
  23.         //2.設(shè)置文件頭:最后一個參數(shù)是設(shè)置下載文件名(假如我們叫a.pdf)  
  24.         response.setHeader("Content-Disposition", "attachment;fileName="+"a.pdf");  
  25.         ServletOutputStream out;  
  26.         //通過文件路徑獲得File對象(假如此路徑中有一個download.pdf文件)  
  27.         File file = new File(path + "download/" + "download.pdf");  
  28.   
  29.         try {  
  30.             FileInputStream inputStream = new FileInputStream(file);  
  31.   
  32.             //3.通過response獲取ServletOutputStream對象(out)  
  33.             out = response.getOutputStream();  
  34.   
  35.             int b = 0;  
  36.             byte[] buffer = new byte[512];  
  37.             while (b != -1){  
  38.                 b = inputStream.read(buffer);  
  39.                 //4.寫到輸出流(out)中  
  40.                 out.write(buffer,0,b);  
  41.             }  
  42.             inputStream.close();  
  43.             out.close();  
  44.             out.flush();  
  45.   
  46.         } catch (IOException e) {  
  47.             e.printStackTrace();  
  48.         }  
  49.     }  
  50.   
  51.     @Override  
  52.     public void setServletContext(ServletContext servletContext) {  
  53.         this.servletContext = servletContext;  
  54.     }  
  55. }  
 

 

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多