(folder, file)
| 506 | }); |
| 507 | } |
| 508 | function uploadFile(folder, file) { |
| 509 | return new Promise((resolve, reject) => { |
| 510 | const id = 'upfill' + (uploadIdx++); |
| 511 | const row = document.createElement('div'); |
| 512 | row.className = 'upl'; |
| 513 | row.innerHTML = `<div class="upl-fill" id="${id}"></div><div class="upl-lbl">${file.webkitRelativePath || file.name}</div>`; |
| 514 | _('uplist').appendChild(row); |
| 515 | const formdata = new FormData(); |
| 516 | formdata.append("file", file, file.webkitRelativePath || file.name); |
| 517 | formdata.append("folder", folder); |
| 518 | const ajax = new XMLHttpRequest(); |
| 519 | ajax.upload.addEventListener("progress", (event) => { |
| 520 | if (event.lengthComputable) |
| 521 | _(id).style.width = Math.round(event.loaded / event.total * 100) + '%'; |
| 522 | }, false); |
| 523 | ajax.addEventListener("load", () => resolve(), false); |
| 524 | ajax.addEventListener("error", () => reject(), false); |
| 525 | ajax.addEventListener("abort", () => reject(), false); |
| 526 | ajax.open("POST", "/"); |
| 527 | ajax.send(formdata); |
| 528 | }); |
| 529 | } |
no test coverage detected