【问题标题】:Getting absolute path from webkitdirectory element从 webkitdirectory 元素获取绝对路径
【发布时间】:2015-07-19 06:20:52
【问题描述】:

我正忙于构建一个从本地文件系统中提取的小型画廊。我有一个获取目录的元素:

    <input type="file" webkitdirectory>

然后我在容器中的页面上显示该目录中的所有图像和视频。

目前出于安全原因,我只能访问相对路径,因此我必须添加硬编码的 e:/downloads 以便在显示文件时找到文件,因为文件的位置在我的桌面上。

我想扩展它,以便可以从本地文件系统的任何位置选择一个目录,但我需要绝对路径。目前只有 IE 让我得到绝对路径,chrome 返回一个假路径。我知道如何设置以允许将本地文件系统文件包含在 IE 中,但我不知道如何在 Chrome 中启用它。我想知道在 IE 中是否有允许这样做的选项。

我已经搜索过,大多数人都说不可能,但是我相信某个地方一定有一个设置,我希望有人知道。

如果您想看一下,这是我的代码,仅供参考: https://jsfiddle.net/3mp1znx9/

请注意,因为它被硬编码为 e:/downloads,您可能需要更改它以使其适合您。

如果您想查看它尝试返回的绝对路径,您可以打开控制台并运行名为 GetDirectory 的函数。 (您还应该在元素更改后注释掉元素的删除)

我希望我的问题很清楚,而且不会太长。谢谢。

总结:
我想从 Chrome 中的元素访问本地文件的绝对路径。我已经可以在 IE 中完成了。

【问题讨论】:

  • 由于安全限制,这不起作用。但是,您应该查看 HTML5 文件 API(只需将其输入 google)。
  • 感谢您的评论和信息。但是,如果我理解正确,它仅适用于正在上传的文件。我没有上传任何文件,我只是在阅读目录中的所有内容。
  • 文件不会上传,只是加载到本地内存中。
  • 谢谢,我想我搞定了。但这意味着我必须选择所有要显示的文件,这意味着它不会获得所有子目录。不过还是谢谢。我想如果我没有收到任何其他回复,我会坚持使用 IE ......这很可悲......但是哦,好吧。

标签: javascript jquery html css google-chrome


【解决方案1】:

我终于找到了解决我自己问题的方法。使用 Chrome 获取绝对路径几乎是不可能的,它只适用于 Internet Explorer。

所以解决方法是使用临时路径。

URL.createObjectURL(e.target.files[0])

这是需要的,然后我将其用作 src。我希望这会在他们偶然发现这一天时对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 2012-08-01
    • 1970-01-01
    • 2022-06-10
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 2010-09-21
    相关资源
    最近更新 更多