让用户在Web应用程序中保存文件时选择文件类型

时间:2015-07-03 09:44:04

标签: java servlets download

我目前正在使用Tomcat和spring框架处理Web应用程序。 CSV文件存储在服务器上,文件路径和文件名存储在数据库中。

网页上的搜索按钮会列出数据库中的所有记录,如果用户点击一个列出的项目,将显示一个保存对话框,文件将保存在本地。

我希望在用户点击一个项目时打开这样的对话框,如何使用httpServlet进行操作?我可以考虑将解决方案设置为content-disposition,将响应标题设置为' attachment'。它会强制浏览器下载文件而不是尝试在浏览器中显示它。但我希望用户能够选择文件下载类型。请看下面的图片

enter image description here

1 个答案:

答案 0 :(得分:1)

Content-Type响应标头设置为浏览器无法呈现的内容应提示用户在收到响应时保存文件。值application/octet-stream(任意二进制数据)应该可以解决问题。

但是,由于您希望实际的文件内容采用不同的格式,具体取决于用户的选择,所以您需要执行以下操作:

  • 在您的html页面上创建一个链接/表单,允许用户选择一个类型并向URL发出正确的扩展请求(例如,对于XLS为download/file.xls或对于CSV为download/file.csv)。
  • 在处理这些URL的servlet中,检查所请求的扩展(简单),然后将文件转换为servlet中的预期格式(不是那么容易)并将其作为响应发送。