我想创建一个文件目标选择器,就像从浏览器中选择下载文件的保存目标一样。但我不知道如何解决这个问题。
我想创建一些文件并将其保存在从用户中选择的位置。与在Eclipse IDE中创建新Java类和在源文件夹中创建浏览器类似。
我找到了很多文件上传器,但这些是浏览特定文件而不是文件夹。
对我的问题有任何建议吗?我非常感谢你的建议。
特别是我更喜欢用Java创建(但不是因为我正在创建web项目),但我也可以使用JavaScript或其他一些有用的库。
答案 0 :(得分:2)
如果要自定义文件在浏览器中的下载方式,则无法通过标准浏览器功能(HTML / CSS / Javascript)完成。
根据响应中发送的Content-Disposition
HTTP标头的值,浏览器将在文件下载时执行以下两项操作之一:
Content-Disposition
设置为attachment
,它将打开一个非常基本的弹出窗口,询问保存文件的位置,弹出窗口无法进行控制或自定义。如果您想要比浏览器更多的功能,那么您需要一个小程序(或用户必须安装的其他插件)。
但是由于去年大部分时间浏览器中Java存在安全问题,现在浏览器不愿意运行applet并且他们要求许多用户确认,即使用户已经安装了Java。
如果网站的用户必须下载Java并单击几个弹出窗口才能使文件下载小部件正常工作,他们可能会离开网站。
现在小应用程序是过时的技术,最好避免使用,因此在Web浏览器中,保存文件的基本弹出窗口是目前最实用的解决方案。
答案 1 :(得分:1)
.. Java(但不是Swing,因为我正在创建Web项目)
Swing提供JApplet
,因此请使用该JFileChooser
。有关详细信息和示例,请参阅How to Use File Choosers。
答案 2 :(得分:1)
如果您向Web浏览器提供转到URL的命令,则会返回响应:
response.addHeader("Content-Disposition", "attachment; filename=" + "\"" +doc.getFileName()+"\"");
response.setContentLength(doc.getData().length);
response.getOutputStream().write(doc.getData());
response.flushBuffer();
(在这种情况下,doc.getData()是一个byte []数组)。
然后,网络浏览器将检测附件,从文件名中推断出类型,并向用户显示“保存”对话框,以便他们决定保存位置。
答案 3 :(得分:0)
您可以将JFileCHooser与FIle类方法一起使用,例如
File a=JFileChooser.getFile();
要了解有关文件类和JFileChooser的更多信息,请参阅下面的链接
答案 4 :(得分:0)
我不确定这是否是您的问题的答案/提示。试试吧
使用HTML中的标记浏览文件。以下示例将专门选择MS Excel文件
<input type="file" name="excelFile" value="Browse For Excel File" id="excelfileId" onChange="handleFiles(this.files)" accept="application/vnd.ms-excel"/>
为了选择文件夹(而不是文件),没有任何直接标签。希望this code sample可以被引用。
讨论类似的主题/查询here