1. 程式人生 > >java後臺以IO流的形式將檔案返回給前臺進行展示

java後臺以IO流的形式將檔案返回給前臺進行展示

後臺根據指定路徑將檔案以流的形式返回前臺進行展示

將本地磁碟的圖片檔案以流的形式返回給前臺,前臺可以用來進行圖片展示。
1.配置檔案內:配置路徑資訊

#圖片儲存路徑  本地磁碟C 下面的“XX資料夾”內放置上傳的檔案
import.file.savePath=c:/XX資料夾名

2.控制層:用@value註解注入檔案儲存路徑

//通過Value註解將儲存路徑注入,引數起別名為importPath
@Value("${import.file.savePath}")
private String importPath;

3.控制層:返回檔案流程式碼部分

@RequestMapping
("/GetFile") public void getFile(HttpServletRequest request , HttpServletResponse response) throws IOException { //讀取路徑下面的檔案 File file = new File(importPath); File picFile = null; for(File f : file.listFiles()){ if(f.getName().contains("檔名")){ //根據路徑獲取檔案 picFile = new picFile(f.getPath()); //獲取檔案字尾名格式
String ext = picFile.getName()substring(picFile.getName().indexOf(".")); //判斷圖片格式,設定相應的輸出檔案格式 if(ext.equals("jpg")){ response.setContentType("image/jpeg"); }else if(ext.equals("JPG")){ response.setContentType("image/jpeg"); }else if(ext.equals("png")){ response.setContentType
("image/png"); }else if(ext.equals("PNG")){ response.setContentType("image/png"); } } } //讀取指定路徑下面的檔案 InputStream in = new FileInputStream(picFile); OutputStream outputStream = new BufferedOutputstream(response.getOutputStream()); //建立存放檔案內容的陣列 byte[] buff =new byte[1024]; //所讀取的內容使用n來接收 int n; //當沒有讀取完時,繼續讀取,迴圈 while((n=in.read(buff))!=-1){ //將位元組陣列的資料全部寫入到輸出流中 ouputStream.write(buff,0,n); } //強制將快取區的資料進行輸出 outputStream.flush(); //關流 outputStream.close(); in.close(); }

4.前臺接收流進行展示

<img src="/專案名/方法名"/>