【问题标题】:How to open a file in filesystem: from a link如何在文件系统中打开文件:来自链接
【发布时间】:2019-02-15 23:16:32
【问题描述】:

我使用 FileSystem API 创建了一个文件。我无法从一个简单的链接打开它。但是,我可以在浏览器中手动打开放置 URL 的页面(文件系统:http://localhost:8100/temporary/log.csv

我目前仅在 google chrome 上进行测试。

window.open("filesystem:http://localhost:8100/temporary/log.csv")

我希望它会在新窗口中打开。

更新: 此问题已通过使用 window.URL.createObjectURL() 得到修复 所以链接会是类似 blob:http://localhost:8100/7aa5685c-ca4f-485a-8bf8-d1c95e6257ab 的东西

【问题讨论】:

  • "filesystem:http://localhost:8100/temporary/log.csv 没有意义,HTTP 是一种网络协议,您使用它请求任何服务器操作。如果您想从文件系统读取文件,您的服务器可以执行此操作(只要服务器在 您的 本地系统上运行),但您在浏览器中的 JS(-> 您的网页)可能无法访问由于安全问题,本地文件系统。
  • 当您在 URL 字段中输入它时,您确定它可以正常工作吗?因为我认为打开本地文件(至少在 chrome 和 firefox 中)应该是 file:/// 而不是 filesystem:。你用的是什么浏览器?
  • FileSystem API 是非标准的,与许多浏览器不兼容,并且已弃用。你应该避免使用它。
  • @messerbill 文件保存在 chrome 的文件系统中。如果我在浏览器中键入 filesystem:localhost:8100/temporary/log.csv 我可以看到它,问题是如何从链接访问它。谢谢
  • @Olian04 如果我在浏览器中输入 filesystem:localhost:8100/temporary/log.csv 我可以访问该文件

标签: javascript html5-filesystem


【解决方案1】:

如果您知道网络服务器的根文件夹在您的文件系统中的哪个位置(例如:d:\apache\www_root\temporary\),然后将您的 csv 文件复制到那里。

完成后,您应该可以通过以下方式从 Javascript 中打开它:

window.open("http://localhost:8100/temporary/log.csv")

【讨论】:

【解决方案2】:

同样的问题。

使用 FileSystem API,因为产品仅限 Chrome。

你是如何把 FileEntry 变成 objectURL 的?

想通了

// turn fileEntry to file
fileEntry.file((f) => {
    console.log(window.URL.createObjectURL(f));
});

【讨论】:

    猜你喜欢
    • 2016-03-19
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多