我的应用程序在JSP / Struts中运行并在WebSphere上运行。我没有访问服务器/真的/所以我试图从应用程序本身(Struts动作和配置,JSP等)中完成所有这些。
我有一个页面,显示用户可能想要查看的PDF文档的链接。当他们点击链接时,它会转发到“文档视图”STRUTS操作,该操作执行从后端系统检索PDF的工作,然后在浏览器窗口中显示PDF。一切正常。
当用户转到File->另存为时,用户要求为每个文档自定义文档的文件名...但是现在浏览器想要尝试在我的名字之后命名文档Struts行动。示例:“documentView.pdf”
我有我想要使用的文件名转发到STRUTS操作,我尝试使用“Content-Disposition”标头来设置它,但是无法让它工作。实际上,如果我使用“attachment; filename =”myfilename“”它会很有用,但它会立即强制执行“另存为...”对话框,这也是我不想要的。
我希望能够在浏览器窗口中查看PDF内联,并在我选择时使用自定义文件名保存。
我已经读过这可能与URL重写有关,但我无法理清这项技术的工作方式。
任何想法都将不胜感激。
答案 0 :(得分:3)
将Content-Disposition的“附件”部分更改为“内联”。
对Content-Disposition的浏览器支持很不稳定。
在支持之前,您曾经能够通过在URL末尾添加多余的键/值来让浏览器做正确的事情。像:
http://example.com/getPDF?id=123213&filename=mydoc.pdf
有些浏览器会将URL的最后一位作为文件名。不确定这是否仍然有效。