123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /*
- Upld.js
- This script can be included in any other pages
- to provide file upload functions
- Usage: handleFile(file, dir, callback)
- E.g.
- const blob = new Blob(["Hello World!"], { type: 'text/plain' });
- const file = new File([blob], "hello.txt");
- handleFile(file, "/down/", function(){
- alert("Upload done");
- });
- */
- function handleFile(file, dir, callback=undefined) {
- // Perform actions with the selected file
- console.log('Uploading file:', file);
- var formdata = new FormData();
- formdata.append("file1", file);
- var ajax = new XMLHttpRequest();
- ajax.upload.addEventListener("progress", progressHandler, false);
- ajax.addEventListener("load", function(event){
- completeHandler(event);
- if (callback != undefined){
- callback();
- }
- }, false); // doesnt appear to ever get called even upon success
- ajax.addEventListener("error", errorHandler, false);
- ajax.addEventListener("abort", abortHandler, false);
- ajax.open("POST", "/upload?dir=" + dir);
- ajax.send(formdata);
- }
- function progressHandler(event) {
- //_("loaded_n_total").innerHTML = "Uploaded " + event.loaded + " bytes of " + event.total; // event.total doesnt show accurate total file size
-
- var percent = (event.loaded / event.total) * 100;
- $("#uploadProgressBar").find(".bar").css("width", Math.round(percent) + "%");
- console.log("Uploaded " + event.loaded + " bytes => " + percent +"%");
- if (percent >= 100) {
- $("#uploadProgressBar").find(".bar").css("width", "100%");
- //_("status").innerHTML = "Please wait, writing file to filesystem";
- }
- }
- function completeHandler(event) {
- }
- function errorHandler(event) {
- }
- function abortHandler(event) {
- }
|