You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ia...@apache.org on 2013/06/12 19:35:35 UTC
js commit: [CB-2406] Add FileWriter.write(blob|arrayBuffer) support
Updated Branches:
refs/heads/master 62c57866b -> 9c6c6374b
[CB-2406] Add FileWriter.write(blob|arrayBuffer) support
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/9c6c6374
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/9c6c6374
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/9c6c6374
Branch: refs/heads/master
Commit: 9c6c6374b7f771fb95c2eabd123e070c5011179e
Parents: 62c5786
Author: Ian Clelland <ic...@chromium.org>
Authored: Tue Jun 11 14:10:23 2013 -0400
Committer: Ian Clelland <ic...@chromium.org>
Committed: Wed Jun 12 11:09:06 2013 -0400
----------------------------------------------------------------------
lib/common/plugin/FileWriter.js | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/9c6c6374/lib/common/plugin/FileWriter.js
----------------------------------------------------------------------
diff --git a/lib/common/plugin/FileWriter.js b/lib/common/plugin/FileWriter.js
index 9dbbd81..e9930ab 100644
--- a/lib/common/plugin/FileWriter.js
+++ b/lib/common/plugin/FileWriter.js
@@ -93,9 +93,25 @@ FileWriter.prototype.abort = function() {
/**
* Writes data to the file
*
- * @param text to be written
+ * @param data text or blob to be written
*/
-FileWriter.prototype.write = function(text) {
+FileWriter.prototype.write = function(data) {
+
+ // Check to see if the incoming data is a blob
+ if (data instanceof Blob) {
+ var that=this;
+ var fileReader = new FileReader();
+ fileReader.onload = function() {
+ // Call this method again, with the arraybuffer as argument
+ FileWriter.prototype.write.call(that, this.result);
+ };
+ fileReader.readAsArrayBuffer(data);
+ return;
+ }
+
+ // Mark data type for safer transport over the binary bridge
+ var isBinary = (data instanceof ArrayBuffer);
+
// Throw an exception if we are already writing a file
if (this.readyState === FileWriter.WRITING) {
throw new FileError(FileError.INVALID_STATE_ERR);
@@ -161,7 +177,7 @@ FileWriter.prototype.write = function(text) {
if (typeof me.onwriteend === "function") {
me.onwriteend(new ProgressEvent("writeend", {"target":me}));
}
- }, "File", "write", [this.fileName, text, this.position]);
+ }, "File", "write", [this.fileName, data, this.position, isBinary]);
};
/**