DragImgUpload.js
3.2 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
function DragImgUpload(id,imgSrc,options) {
this.me = $(id);
var defaultOpt = {
boxWidth:'200px',
boxHeight:'auto',
}
if(!imgSrc){
imgSrc = "../images/upload.png";
}
this.preview = $('<div id="preview"><img src="'+imgSrc+'" class="img-responsive" style="width: 100%;height: auto;" alt="" title=""> </div>');
this.opts=$.extend(true, defaultOpt,{
}, options);
this.init();
this.callback = this.opts.callback;
}
DragImgUpload.prototype = {
init:function () {
this.me.append(this.preview);
this.me.append(this.fileupload);
this.cssInit();
this.eventClickInit();
},
cssInit:function () {
this.me.css({
'width':this.opts.boxWidth,
'height':this.opts.boxHeight,
'border':'1px solid #cccccc',
'padding':'10px',
'cursor':'pointer'
})
this.preview.css({
'height':'100%',
'overflow':'hidden'
})
},
onDragover:function (e) {
e.stopPropagation();
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
},
onDrop:function (e) {
var self = this;
e.stopPropagation();
e.preventDefault();
var fileList = e.dataTransfer.files;
if(fileList.length == 0){
return false;
}
//妫€娴嬫枃浠舵槸涓嶆槸鍥剧墖
if(fileList[0].type.indexOf('image') === -1){
return false;
}
var img = window.URL.createObjectURL(fileList[0]);
var filename = fileList[0].name;
var filesize = Math.floor((fileList[0].size)/1024);
if(filesize>500){
return false;
}
self.me.find("img").attr("src",img);
self.me.find("img").attr("title",filename);
if(this.callback){
this.callback(fileList);
}
},
eventClickInit:function () {
var self = this;
this.me.unbind().click(function () {
self.createImageUploadDialog();
})
var dp = this.me[0];
dp.addEventListener('dragover', function(e) {
self.onDragover(e);
});
dp.addEventListener("drop", function(e) {
self.onDrop(e);
});
},
onChangeUploadFile:function () {
var fileInput = this.fileInput;
var files = fileInput.files;
var file = files[0];
var img = window.URL.createObjectURL(file);
var filename = file.name;
this.me.find("img").attr("src",img);
this.me.find("img").attr("title",filename);
if(this.callback){
this.callback(files);
}
},
createImageUploadDialog:function () {
var fileInput = this.fileInput;
if (!fileInput) {
fileInput = document.createElement('input');
fileInput.type = 'file';
fileInput.name = 'theImg';
fileInput.multiple = false;
fileInput.style="display:none;";
fileInput.onchange = this.onChangeUploadFile.bind(this);
this.fileInput = fileInput;
this.me.append(fileInput);
}
fileInput.click();
}
}