在jsp中下载选项窗口

时间:2011-10-07 11:35:44

标签: http jsp

我需要在jsp中为用户提供一个选项choose a folder,他可以保存/下载文件。请帮助我。

文字input="file"会给文件选择器,但我需要directory chooser

4 个答案:

答案 0 :(得分:1)

HTTP不允许您指定(服务器端)文件的下载位置 - 这不是jsp特定的东西。

如果你需要这个,那么你需要提供一个可嵌入的应用程序(javascript,java,flash,vbscript ...),它允许在浏览器沙箱之外运行并实现自己的网络客户端来检索文件。这远非理想的解决方案。

您可以通过内容处置标题强制下载使用特定名称。

  

text input =“file”将给出文件选择器

..但这是上传内容 - 而不是下载。

答案 1 :(得分:1)

can't使用JSP / Servlet在下载文件的客户端计算机上设置文件夹位置。如果要添加文件夹选择器功能,则必须开发applet。您可以使用JFileChooser来允许用户选择文件夹,并使用java.net.URLjava.net.URLConnection来下载文件。

答案 2 :(得分:0)

大多数浏览器会自动下载浏览器无法渲染的文件,因此它只是一个链接......!例如,如果它是一个zip文件,只需将其添加为代码中的任何旧“链接”即可。当用户点击时,将启动下载/保存对话框....

“保存/下载”功能是一个客户端问题 - 记录Web开发人员的工作是提供内容 - 它是决定如何处理内容的浏览器。

答案 3 :(得分:0)

密钥是Content-Disposition标头。其值必须设置为attachment才能强制另存为对话框。你可以在servlet中完成这项工作。只需让您的链接URL指向文件servlet,就像这样

<a href="fileservlet/filename.ext">download filename.ext</a>

然后,在文件servlet中,用于将上述示例映射到/fileservlet/*的URL模式,请执行以下操作:

String filename = URLDecoder.decode(request.getPathInfo().substring(1), "UTF-8");

response.setHeader("Content-Type", getServletContext().getMimeType(filename));
response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");

// Now get an InputStream of the file and write it to OutputStream of response.

另见: