我需要在jsp中为用户提供一个选项choose a folder
,他可以保存/下载文件。请帮助我。
文字input="file"
会给文件选择器,但我需要directory chooser
答案 0 :(得分:1)
HTTP不允许您指定(服务器端)文件的下载位置 - 这不是jsp特定的东西。
如果你需要这个,那么你需要提供一个可嵌入的应用程序(javascript,java,flash,vbscript ...),它允许在浏览器沙箱之外运行并实现自己的网络客户端来检索文件。这远非理想的解决方案。
您可以通过内容处置标题强制下载使用特定名称。
text input =“file”将给出文件选择器
..但这是上传内容 - 而不是下载。
答案 1 :(得分:1)
您can't
使用JSP / Servlet在下载文件的客户端计算机上设置文件夹位置。如果要添加文件夹选择器功能,则必须开发applet
。您可以使用JFileChooser
来允许用户选择文件夹,并使用java.net.URL
和java.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.