2012-02-06 38 views
3

我正在使用Google Chrome 16中的FileSystem API,但無法寫入多個blob(不需要重新打開要附加的文件)。似乎文件在第一次寫入後關閉。Google Chrome的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錯誤:INVALID_STATE_ERR:DOM文件中的異常7_

W3的醫生說大約FileWriter「這個接口擴展了FileSaver接口上允許用於多次寫入操作,而不是隻保存一個Blob。「

回答

2

根據該規範,你是不是允許使用作家當它是忙着寫

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 
}; 
+0

謝謝,這是我的錯。在事件發生之前,我正在寫作。 – 2012-02-06 21:51:27