在 Servlet-Spring 中强制浏览器下载

Posted

技术标签:

【中文标题】在 Servlet-Spring 中强制浏览器下载【英文标题】:Force browser download in Servlet- Spring 【发布时间】:2012-07-24 19:46:42 【问题描述】:

我是 Spring MVC 的新手,我对在 servlet 中访问 HttpServletResponse 对象存有疑问。

基本上我的代码是这样的:

@RequestMapping("/part of requesturl")
@ResponseBody String methodName(HttpServletRequest request)

    //All the computations which build up a JSon

    return json;

现在这个json 文件作为响应显示在浏览器上。无论浏览器如何,我都需要强制将其下载到用户的磁盘上。通过查看其他帖子,我认为我应该这样做:

response.setContentType("application/force-download");

如何在此处获取响应对象?此外,如果有人可以进一步了解强制下载到浏览器上,那就太好了。提前致谢!

【问题讨论】:

【参考方案1】:

如何在此处获取响应对象?

非常直观:

@ResponseBody String methodName(
        HttpServletRequest request, 
        HttpServletResponse response
) 
    response.setContentType("application/force-download");
        //...

另外,如果有人能更清楚地说明强制下载到浏览器上,那就太好了。

见:

How to force browser to download file? Utility of HTTP header "Content-Type: application/force-download" for mobile?

【讨论】:

以上是关于在 Servlet-Spring 中强制浏览器下载的主要内容,如果未能解决你的问题,请参考以下文章

在快速路由响应中发送 PDF 并强制浏览器下载

强制浏览器下载视频,而不是在 html 中打开 [重复]

apache_conf .htaccess - 强制文件在浏览器中下载

有啥方法可以“模拟”右键单击另存为命令或使用 JavaScript 在浏览器中强制下载文件?

.htaccess 在 Safari 中强制 PDF 下载

强制网络浏览器播放文件而不是下载