【问题标题】:Make a link to download local file创建一个链接以下载本地文件
【发布时间】:2012-01-26 22:11:52
【问题描述】:

在我的项目 (Java SpringMVC3) 中,我通过 HttpClient 获得了一个 XLS 文件,我希望下载该文件,就像它是真正的下载一样。显示下载对话框的弹出窗口。 我该怎么做?

【问题讨论】:

  • 这两个答案都很有用。我用的是第一个。

标签: java spring-mvc download


【解决方案1】:

控制器应该将文件的内容复制到响应对象。不要忘记 - 控制器函数必须返回 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;

【讨论】:

  • 为什么我们需要最后两行? InputStream is = new FileInputStream(file); FileCopyUtils.copy(is, response.getOutputStream());
【解决方案2】:

基本上,您需要实现一个控制器来处理下载并指定响应的 header-mime 类型。然后你从视图中调用那个控制器。

这是一个如何指定 header-mime 类型的简短示例

HTTP Header Mime Type in Websphere Application Server 7

【讨论】:

    猜你喜欢
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 2020-12-31
    • 1970-01-01
    • 2010-10-14
    相关资源
    最近更新 更多