10

我想知道,使用 Chrome 中公开的新文件 API(我目前不关心跨浏览器支持),是否可以写回通过文件输入打开的文件。

您可以在这里看到我正在尝试完成的示例:http: //www.grehz.com/ide

我知道我可以使用服务器端脚本来动态创建文件并允许用户正常下载它们。我希望有一种方法可以完成这个纯粹的客户端。我在某处读过,您可以写入通过文件输入打开的文件。尽管我已经看到传递对 FileWriter 类的引用,但我找不到任何这样的示例。

如果这是不可能的,我完全不会感到惊讶(这似乎可能存在安全问题)。只是寻找一些指导或资源。

更新:

我在这里阅读:http: //dev.w3.org/2009/dap/file-system/file-writer.html

当我在 Chrome 中玩耍时,看起来 FileSaver 和 FileWriter 没有实现,但 BlobBuilder 是。我可以在 BB 对象上调用 getBlob(),有没有什么方法可以在没有 FileSaver 或 FileWriter 的情况下保存它?

更新2:

我在 Chromium 项目中发现了这个问题:http ://code.google.com/p/chromium/issues/detail?id=65615&q=FileSaver&colspec=ID%20Stars%20Pri%20Area%20Feature%20Type%20Status%20Summary%20Modified %20所有者%20Mstone%20OS

所以很明显它还没有在任何版本中实现(但是,没有提到 FileWriter——尽管我相信 FileWriter 依赖于 FileSaver)。

远离这一点,我正在考虑使用服务器端解决方案。当用户单击保存时,textarea 的内容被发布到脚本,然后写入页面并以纯文本或任何适合用户下载的 mime 类型发回。还有其他建议吗?此解决方案适用于“另存为”,但作为通用保存按钮有点笨拙。

4

2 回答 2

4

来自: http ://code.google.com/p/chromium/issues/detail?id=58985#c7

FileSystem 确实是存储大文件的正确位置(听起来就像您正在做的那样),并且在 Chrome 9 中可用。我建议您查看这些替代方案。

注意左上角的not -extensions 标签。听起来这可能只适用于 Chromium OS。我向发表此评论的开发人员 Jeremy 发送了电子邮件以进行澄清。

更新: Jeremy 回复说,扩展实际上可以访问 File API,包括写入,但它仅限于沙箱。他还链接到有关此事的一些未部署的文档: http ://code.google.com/p/html5rocks/source/browse/www.html5rocks.com/content/tutorials/file/filesystem/index.html?spec=svn1cbb2aab2d6954a56f3067d2d3b9e997215be441&r =1cbb2aab2d6954a56f3067d2d3b9e997215be441

于 2011-01-13T00:47:16.020 回答
2

在实施这些 api 之前,我不知道如何保存——这可能需要一段时间。

于 2010-12-26T19:08:18.010 回答