我需要知道java / servlet中是否有办法使存储在数据库中的文档(doc,pdf)可以按要求的方式下载给用户(请参阅下文),
例如,有一个网页和其中的文档链接
现在以这种方式完成: 如果用户单击该链接而不是打开新的空白窗口,则会显示下载对话框,并且用户可以下载该文档但该空白窗口保持打开状态 并且用户必须手动关闭它
但希望这样做: 如果用户单击该链接而不是直接停留在该页面上,则应显示下载对话框,要求他们保存文件
servlet url处理文档的下载,该文档负责提取doc表单数据库并可供用户下载
感谢您的时间和精力
答案 0 :(得分:3)
您需要在servlet中添加以下标头,使其成为可下载的内容,以便浏览器不会尝试显示它,
String value = "attachment;filename=\"" + URLEncoder.encode(filename, "UTF-8") +'"';
response.setHeader("Content-Disposition", value);
response.setHeader("Content-Transfer-Encoding", "binary");
文件名是建议的文件名,用户可以更改它。
答案 1 :(得分:1)
我想知道你的链接html是否有类似的东西:
<a href="/foo" **target="_blank"** ....>download</href>
否则,它应该可以正常工作。
答案 2 :(得分:0)
您需要从target="_blank"
元素中删除<a>
。
修改:您需要将Content-Disposition
标题设置为attachment
。您可以在此处找到simple fileservlet和advanced fileservlet的示例,以获得一些见解。
答案 3 :(得分:0)
这是IE中的一个错误,它取决于几个方面,内容类型就是其中之一。几年前我们遇到了同样的问题,但我不再记得正确的解决方案了,只是我们在相当长一段时间内一直在努力解决这个问题。试试这个:
application/pdf
)application/octet-stream
),这应该告诉IE单独留下文件。但是,您可能会遇到文件扩展名的问题。其中一件事让IE表现得很好。祝你好运。