文件目的地选择器

时间:2014-01-08 06:09:14

标签: java javascript file file-upload applet

我想创建一个文件目标选择器,就像从浏览器中选择下载文件的保存目标一样。但我不知道如何解决这个问题。

我想创建一些文件并将其保存在从用户中选择的位置。与在Eclipse IDE中创建新Java类和在源文件夹中创建浏览器类似。

我找到了很多文件上传器,但这些是浏览特定文件而不是文件夹。

对我的问题有任何建议吗?我非常感谢你的建议。

特别是我更喜欢用Java创建(但不是因为我正在创建web项目),但我也可以使用JavaScript或其他一些有用的库。

5 个答案:

答案 0 :(得分:2)

如果要自定义文件在浏览器中的下载方式,则无法通过标准浏览器功能(HTML / CSS / Javascript)完成。

根据响应中发送的Content-Disposition HTTP标头的值,浏览器将在文件下载时执行以下两项操作之一:

  • 尝试根据文件的扩展名解析文件,如果文件为HTML则呈现文件,如果是xml等则显示文件
  • 如果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的更多信息,请参阅下面的链接

For file class

FileChooser

答案 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