2012-03-15 81 views
0

我正在使用擴展名將用戶選擇的文件複製到擴展的文件系統中。我沒有收到任何錯誤,但是當我嘗試查看圖像時,它已損壞。以下是一個代碼示例:Javascript - 將圖像文件寫入blob(html5文件api)

this.create = function(obj, attr, calling_model){ 
// Get parent directory 
fs.root.getDirectory(obj.type, {create: true}, function(dirEntry) { 
    // Create file 
    dirEntry.getFile(obj.type+'-'+obj.id+'-'+attr.name, {create: true, exclusive: true}, function(fileEntry) { 
    fileEntry.createWriter(function(fileWriter) { 
     fileWriter.write(attr.value); 
    }, errorHandler); 
    alert('just wrote a file to: '+fileEntry.toURL()); 
    // Update passed object 
    obj[attr.name] = fileEntry.toURL(); 
    calling_model.update(obj); 
    }, errorHandler); 
}, errorHandler); 

}; 

其中attr.value =文件輸入的值。我覺得在將文件輸入到文件系統之前,應該將文件輸入的值轉化爲一個blob,但是我還沒有找到任何如何實現這個功能的例子。有沒有人解決過這個問題?

在此先感謝...

回答

0

如果attr.valueFile對象,你的代碼應該工作。我在關於Filesystem API的HTML5Rocks文章中寫了一篇關於"duplicating user selected files"的章節,這應該有所幫助。