2011-12-23 66 views
0

在我的項目(Java SpringMVC3)中,我通過HttpClient獲得了一個XLS文件,我希望下載這個文件,就像它是一個真正的下載文件。顯示下載對話框的彈出窗口。 我該怎麼做?創建鏈接以下載本地文件

+0

這兩個答案都很有用。我用了第一個。 – yyy 2012-01-21 17:02:24

回答

2

控制器應該複製文件來響應對象的內容。別忘了 - 控制器函數必須返回NULL。下面我從我的應用程序中顯示一個工作示例:

String filename = /* path to a file */ 

File file = new File(filename); 

response.setContentType(new MimetypesFileTypeMap().getContentType(file)); 
response.setContentLength((int)file.length()); 
response.setHeader("content-disposition", "attachment; filename=" + URLEncoder.encode(filename, "UTF-8")); 

InputStream is = new FileInputStream(file); 
FileCopyUtils.copy(is, response.getOutputStream()); 

return null; 
+0

爲什麼我們需要最後兩行? InputStream is = new FileInputStream(file); FileCopyUtils.copy(is,response.getOutputStream()); – Sridhar 2015-02-19 13:27:56