API Docs for: 1.0.2
Show:

File: GIScene\Loader\LocalFileLoader.js

/**
 * The local file loader will load files from the local file system 
 * 
 * @namespace GIScene
 * @class LocalFileLoader
 * @constructor
 * @param {HTMLInputElement} fileInputElement an input element of type="file" used to choose the file to load
 * @param {String} readAs defines the nature of the result. Can be "text", "dataURL", "binaryString" or "arrayBuffer"
 * @param {Function} onSuccess will have an argument containing the fileReader.result, which depends on the readAs property
 * @param {Function} onProgress will have an argument containing the ProgressEvent
 * @param {Fucntion} onError will have an argument containing the DOMError object of fileReader.error
 */

GIScene.LocalFileLoader = function(fileInputElement, readAs, onSuccess, onProgress, onError) {
	
	this.fileReader = new FileReader();
	
	var loadFile = function(event) {
		
		var fileList = event.target.files;
		var file = fileList[0];
		var filename = file.name;
		
		this.fileReader.onload 		= function(event) { if(onSuccess)  onSuccess(this.fileReader.result, filename); }.bind(this);
		this.fileReader.onprogress 	= function(event) { if(onProgress) onProgress(event, filename); };
		this.fileReader.onerror 	= function(event) { if(onError)    onError(this.fileReader.error, filename); }.bind(this);
		
		
		//start loading
		switch (readAs.toUpperCase()){
			case "TEXT": 
					this.fileReader.readAsText(file);
					break;
			case "DATAURL":
					this.fileReader.readAsDataURL(file);
					break;
			case "BINARYSTRING":
					this.fileReader.readAsBinaryString(file);
					break;
			case "ARRAYBUFFER":
					this.fileReader.readAsArrayBuffer(file);
		}
		
	}.bind(this);
	
	fileInputElement.addEventListener('change', loadFile, false);
	
};