1 |
|
2 | export 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 | };
|