javascript - Google Chrome 的文件系统 API 是否允许多个 blob 的写入操作?

标签 javascript html api google-chrome filesystems

我正在使用 Google Chrome 16 中的 FileSystem API,但不能多次写入 blob(无需重新打开文件进行附加)。似乎文件在第一次写入后关闭。

例如:

var blob = new WebKitBlobBuilder();
blob.append('one');
fileWriter.write(blob.getBlob('text/plain'));

var blob2 = new WebKitBlobBuilder();
blob2.append('two');
fileWriter.write(blob2.getBlob('text/plain'));

给出一个_Uncaught Error: INVALID_STATE_ERR: DOM File Exception 7_

W3 文档说 FileWriter :“此接口(interface)扩展了 FileSaver 接口(interface)以允许多个写入操作,而不仅仅是保存单个 Blob。”

最佳答案

根据规范,你不能在写入器忙于写入时使用:

write

  1. If readyState is WRITING, throw a FileException with error code INVALID_STATE_ERR and terminate this overall series of steps.

由于编写器是异步的,您必须等待使用回调:

// write first blob

fileWriter.onwriteend = function() {
  // write second blob
};

关于javascript - Google Chrome 的文件系统 API 是否允许多个 blob 的写入操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9167280/

相关文章:

javascript - child 变异一个 Vue Prop 有多危险?

api - 使用 API key 开发服务(起点)

api - 请求/获取访问 API 的访问 token (Auth0)

api - 通过 API 搜索 Apple Appstore 名称?

javascript - 如何在页面重新加载时保持输入复选框的状态

javascript - 在ajax成功方法中返回未定义

javascript - 防止在文本区域中编辑单个单词

javascript - 如何通过svg绘制线性渐变圆圈?

html - 有没有办法在完全加载之前告诉 .ogg 视频的文件大小?

javascript - Jquery treeview-如何通过单击按钮来展开/折叠给定的单个节点