UNPKG

2.41 kBJavaScriptView Raw
1
2export var FileUpload = {
3
4 download: function(url, callback, error_callback = null) {
5 var xhr = new XMLHttpRequest();
6 xhr.onload = function() {
7 if (this.readyState === 4) {
8 if (this.status === 200) {
9 var blob = this.response;
10 callback(blob);
11 } else {
12 if (error_callback !== null) {
13 error_callback(this.response, this.status);
14 }
15 }
16 }
17 };
18 xhr.open('GET', url, true);
19 xhr.responseType = 'blob';
20 xhr.send();
21
22 },
23
24 addToForm: function(form_id_or_el, input_name, blob) {
25 if (typeof form_id_or_el === 'object') {
26 var el = form_id_or_el;
27 } else {
28 var el = document.getElementById(form_id_or_el);
29 }
30
31 var post_data = new FormData(el);
32 post_data.append(input_name, blob);
33 return post_data;
34 },
35
36 previewImageFromInput(preview_img_id_or_el, file_input_id_or_el) {
37 if (typeof preview_img_id_or_el === 'object') {
38 var el = preview_img_id_or_el;
39 } else {
40 var el = document.getElementById(preview_img_id_or_el);
41 }
42
43 if (typeof file_input_id_or_el === 'object') {
44 var input = file_input_id_or_el;
45 } else {
46 var input = document.getElementById(file_input_id_or_el);
47 }
48
49 el.src = URL.createObjectURL(input.files[0]);
50 },
51
52 previewImageFromBlob(preview_img_id_or_el, blob) {
53 if (typeof preview_img_id_or_el === 'object') {
54 var el = preview_img_id_or_el;
55 } else {
56 var el = document.getElementById(preview_img_id_or_el);
57 }
58 el.src = URL.createObjectURL(blob);
59 },
60
61 attachImagePreviewEvent(preview_img_id_or_el, file_input_id_or_el) {
62 if (typeof preview_img_id_or_el === 'object') {
63 var el = preview_img_id_or_el;
64 } else {
65 var el = document.getElementById(preview_img_id_or_el);
66 }
67
68 if (typeof file_input_id_or_el === 'object') {
69 var input = file_input_id_or_el;
70 } else {
71 var input = document.getElementById(file_input_id_or_el);
72 }
73
74 input.addEventListener('change', () => {
75 this.previewImageFromInput(el, input);
76 });
77 }
78
79};