我想知道,如果在Chrome中公开新的File 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的情况下保存它?
UPDATE2:
我在Chromium项目中发现了这个问题:http://code.google.com/p/chromium/issues/detail?id=65615&q=FileSaver&colspec=ID%20Stars%20Pri%20Area%20Feature%20Type%20Status%20Summary%20Modified%20Owner%20Mstone%20OS
所以很明显它还没有在任何版本中实现(但是,没有提到FileWriter - 虽然我相信FileWriter依赖于FileSaver)。
远离那个,我正在考虑一个服务器端解决方案。当用户单击“保存”时,textarea的内容将发布到脚本,然后该脚本将写入页面并以明文或任何适合用户下载的mime类型发回。还有其他建议吗?这个解决方案适用于“另存为”,但它作为通用保存按钮有点笨重。
答案 0 :(得分:4)
自: http://code.google.com/p/chromium/issues/detail?id=58985#c7
FileSystem真的是个合适的地方 存储大文件(这就是它 听起来像你在做)并且是 在Chrome 9中提供。我建议你 看看这些替代品。
请注意左上角的不 - 扩展标签。听起来这可能仅适用于Chromium OS。我通过电子邮件发送了发表评论的开发人员杰里米。
<强>更新强> Jeremy回答说,扩展实际上将访问File API,包括写入,但它将被限制在沙盒中。他还与一些关于此事的未部署文档有关: http://code.google.com/p/html5rocks/source/browse/www.html5rocks.com/content/tutorials/file/filesystem/index.html?spec=svn1cbb2aab2d6954a56f3067d2d3b9e997215be441&r=1cbb2aab2d6954a56f3067d2d3b9e997215be441
答案 1 :(得分:2)
在实施这些api之前我不知道要保存 - 这可能需要一段时间。