JSFiddle - React, Tailwind, and code Playground
by mr23
HTML
<input type="file" id="myfile" multiple />
JavaScript
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
var fs = null;
document.querySelector('#myfile').onchange = function(e) {
var files = this.files;
console.log("myfile changed");
window.requestFileSystem(window.PERSISTENT,1024*1024, function(gb) {
navigator.webkitPersistentStorage.requestQuota (requestedBytes, onInitFs, errorHandler);
}, function(e) {
console.log('Error', e);
});
function errorHandler(DOMError) {
var msg = '';
switch (DOMError.name) {
case 'QuotaExceededError':
msg = 'QuotaExceededError';
break;
case 'NotFoundError':
msg = 'NotFoundError';
break;
case 'SecurityError':
msg = 'SecurityError';
break;
case 'InvalidModificationError':
msg = 'InvalidModificationError';
break;
case 'InvalidStateError':
msg = 'InvalidStateError';
break;
default:
msg = 'Unknown Error';
break;
};
console.log('Error: ' + msg);
}
function onInitFs(fs) {
console.log("onInitFS: ");
for (var i = 0, file; i<files.length && file = files[i]; ++i) {
console.log("onInitFS: " + i + " " + file);
(function(f) {
fs.root.getFile(f.name, {create: true}, function(fileEntry) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
console.log('Write completed.');
};
fileWriter.onerror = function(e) {
console.log('Write failed: ' + e.toString());
};
// Create a new Blob and write it to log.txt.
var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'});
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
})(file);
} // loop
} // onInitFS
}