webamp/file-manager.js
2014-11-16 18:18:53 -08:00

39 lines
1.1 KiB
JavaScript

// Handle common file interactions
FileManager = {
reader: new FileReader(),
// Given an input node, returns a functional URL
urlFromInput: function(input) {
var file = input.files[0];
return this.urlFromFileReference(file);
},
urlFromFileReference: function(fileReference) {
return URL.createObjectURL(fileReference);
},
bufferFromFileReference: function(fileReference, bufferHandler) {
this.reader.onload = function (e) {
var arrayBuffer = e.target.result;
bufferHandler(arrayBuffer);
};
this.reader.onerror = function (e) {
//console.error(e);
};
this.reader.readAsArrayBuffer(fileReference);
},
bufferFromUrl: function(url, bufferHandler) {
var oReq = new XMLHttpRequest();
oReq.open("GET", url, true);
oReq.responseType = "arraybuffer";
oReq.onload = function (oEvent) {
var arrayBuffer = oReq.response; // Note: not oReq.responseText
bufferHandler(arrayBuffer);
};
oReq.send(null);
}
}