@Controller
@RequestMapping("/d")
public class DownLoadAction {
@RequestMapping("/download")
public void download(HttpServletRequest request,
HttpServletResponse response) throws Exception {
response.setContentType("text/html;charset=UTF-8");
BufferedInputStream in = null;
BufferedOutputStream out = null;
request.setCharacterEncoding("UTF-8");
String rootpath = request.getSession().getServletContext().getRealPath(
"/image//");
String fileName ="exam.xlsx";
try {
File f = new File(rootpath +"/"+ fileName); //将服务器上的文件下载下来
response.setContentType("application/x-excel");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment; filename="+fileName);
response.setHeader("Content-Length",String.valueOf(f.length()));
in = new BufferedInputStream(new FileInputStream(f));
out = new BufferedOutputStream(response.getOutputStream());
byte[] data = new byte[1024];
int len = 0;
while (-1 != (len=in.read(data, 0, data.length))) {
out.write(data, 0, len);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}

本文介绍了一个使用Spring MVC框架实现文件下载功能的例子。通过设置HTTP响应头来触发浏览器的下载行为,具体包括如何读取服务器上的文件并将其发送到客户端。
1473

被折叠的 条评论
为什么被折叠?



