【问题标题】:How to create a popup window to select a file in a local directory?如何创建一个弹出窗口来选择本地目录中的文件?
【发布时间】:2016-10-30 13:50:14
【问题描述】:

我想创建一个弹出窗口,显示某个目录中的所有文件,例如 /functions 目录。我希望能够单击该目录中的文件,单击确定,并将其信息存储在变量中(而不是上传),我该怎么做?

我尝试过使用以下形式:

<form action="" method="post" enctype="multipart/form-data">

但是我无法指定要打开的目录,我必须手动导航到该目录。

我尝试过使用 window.open()

window.open("file:///" + "home/user/Desktop/demo/functions");

我尝试过使用 onclick 链接机制:

<a onclick="file:///+ "home/user/Desktop/demo/functions"">Open folder</a>

这些似乎都不起作用,我有什么办法可以解决这个问题?

【问题讨论】:

  • 我很确定你可以,因为安全。我真的不希望某些网站会访问我计算机中的特定文件夹。
  • 我必须为一个任务做这个,所以我现在真的绝望了。
  • 我能不能以某种方式做 window.open,打印那里目录中的所有文件,能够以某种方式单击这些文件并单击“确定”?
  • 如果没有服务器代码读取目录,您将无法执行此操作。出于明显的安全原因,浏览器中的文件访问被阻止。您可以安装 node.js 并将其用作服务器来读取目录
  • 我不确定它是否会有所帮助,但您可以阅读this 但是:In April 2014, it was announced on public-webapps that the Filesystem API spec is not being considered by other browsers. For now, the API is Chrome-specific and it's unlikely to be implemented by other browsers and is no longer being standardized with the W3C.

标签: javascript php jquery html file


【解决方案1】:

在 JavaScript 中,文件处理有点混乱。从 JavaScript 中获取文件夹内容的唯一方法是连接到服务器,并使用不同语言的服务器端代码将文件夹信息传递回 JavaScript。

我认为我们能够伪造这个结果的唯一方法是在目标目录中放置一个index.html 文件。这个index.html 文件将包含其中文件夹中所有文件的名称。但是,它们必须手动插入 HTML 文件。 (如果你会使用 PHP,它可以扫描一个目录并将内容推送到 HTML 文件)

当网络浏览器必须导航到一个文件夹时,它会向服务器请求一个index 文件(通常这将是一个 HTML 或 PHP 文件)。然后,该索引将包含文件夹的内容。

但是,如果该文件夹确实在本地计算机上,那么我们还有最后一种方法可以做到这一点...

如果页面使用类似于file:///C://Users/USERNAME/Desktop/My%20Folder/window.location 导航到文件夹,chrome(或您使用的任何浏览器)将导航到该目录并显示该目录的内容。但是,由于您无法将 JavaScript 放入此浏览器生成的索引页面,因此您将无法对其进行操作。

【讨论】:

    【解决方案2】:

    &lt;input type="file"&gt; 可能是你最好的选择,但你不能用它设置默认目录(至少在没有一些 JavaScript voodoo 的情况下不能,即使这样,网络和本地用户之间也会存在安全问题)。

    无论如何,我不知道您为什么要这样做,因为不同用户之间的目录结构会有所不同,并且不同操作系统之间的路径规范也不同。

    【讨论】:

      【解决方案3】:

      我建议您在单击上传按钮后将该图片复制到项目/图像文件夹中,而不是这样做。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-13
        • 2013-04-29
        • 1970-01-01
        • 1970-01-01
        • 2016-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多