<div id="fileupload">
<input id="file" type="file" style="display: none;"> <a
id="btn" href="#" class="easyui-linkbutton"
data-options="iconCls:'icon-redo'" onclick="fileUpload('file')">点击上传</a>
<div id="urlDiv"></div>
</div>
function fileUpload(id) {
myUpload({
url : rootPath + "/file/upload.do",
maxSize : 10,//大小限制
fileType : [ 'pdf' ],//文件类型
fileId : id,//文件输入框id
beforeSend : function(file) {
//上传前的操作 ,可以打开进度条
},
//回调函数
callback : function(res, status) {
var res = eval('(' + res + ')');
if (status == 200) {
if (res.isSuccess) {
$.messager.alert('提示', '文件上传成功');
$('#urlDiv').append('<input id = "url" type="text">');
$('#url').val(res.url);
} else {
$.messager.alert('提示', '文件上传失败');
}
} else {
$.messager.alert('提示', '文件上传失败');
}
},
uploading : function(pre) {
//上传中操作
}
});
}
function myUpload(option) {
var fd = new FormData(), xhr = new XMLHttpRequest();
var input = $('#' + option.fileId);
if (input.outerHTML) {
input.outerHTML = input.outerHTML;
} else { // FF(包括3.5)
input.value = "";
}
input.click();
// var fileType = [ 'pdf', 'png' ];
input
.change(function() {
if (!this.value) {
return;
}
var type = this.value.split('.').pop();
if (option.fileType.indexOf(type.toLocaleLowerCase()) == -1) {
alert("暂不支持该类型的文件,请重新选择!");
return;
}
for (var i = 0, file; file = this.files[i++];) {
if (option.maxSize
&& file.size > option.maxSize * 1024 * 1024) {
alert('请上传小于' + option.maxSize + 'M的文件');
return;
}
}
if (option.beforeSend instanceof Function) {
if (option.beforeSend(this) === false) {
return false;
}
}
fd.append('imgFile', this.files[0]);
xhr.open('post', option.url);
// xhr.setRequestHeader("Content-type", "multipart/form-data");
xhr.send(fd);
xhr.onload = function() {
if (option.callback instanceof Function) {
option.callback(xhr.responseText, xhr.status);
}
}
xhr.upload.onprogress = function(event) {
var pre = Math.floor(event.loaded / event.total * 100
| 0);
if (option.uploading instanceof Function) {
option.uploading(pre);
}
}
})
}