【发布时间】:2012-01-26 22:11:52
【问题描述】:
在我的项目 (Java SpringMVC3) 中,我通过 HttpClient 获得了一个 XLS 文件,我希望下载该文件,就像它是真正的下载一样。显示下载对话框的弹出窗口。 我该怎么做?
【问题讨论】:
-
这两个答案都很有用。我用的是第一个。
标签: java spring-mvc download
在我的项目 (Java SpringMVC3) 中,我通过 HttpClient 获得了一个 XLS 文件,我希望下载该文件,就像它是真正的下载一样。显示下载对话框的弹出窗口。 我该怎么做?
【问题讨论】:
标签: java spring-mvc download
控制器应该将文件的内容复制到响应对象。不要忘记 - 控制器函数必须返回 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;
【讨论】:
基本上,您需要实现一个控制器来处理下载并指定响应的 header-mime 类型。然后你从视图中调用那个控制器。
这是一个如何指定 header-mime 类型的简短示例
【讨论】: