-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
upload.js
31 lines (29 loc) · 923 Bytes
/
upload.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
S.upload = {
file: function (file, url, onprogress, oncomplete, onerror) {
const xhr = new XMLHttpRequest();
const formdata = new FormData();
xhr.open("POST", url, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
if (typeof oncomplete == 'function') {
oncomplete(xhr);
}
} else if (xhr.status == 500) {
hasError();
}
}
};
xhr.onerror = function (e) {
if(e.error != null) { hasError(e); }
};
function hasError() {
if (typeof onerror == 'function') {
onerror(xhr);
}
}
xhr.upload.onprogress = onprogress;
formdata.append('file', file);
xhr.send(formdata);
}
}