plupload addFile函数添加文件上传
功能描述
Excel文件上传后,先校验Excel文件内容,上传完成后,错误,确认框提示错误信息。点击确认再将文件导入系统。否则默认后台正常导入系统。
关键代码说明
//校验成功后,将文件添加到导入上传队列
uploader.addFile(file);
//uploader.start() //这里直接调用时,uploaderCheck还在运行中,因为单一实例只允许一个任务上传,会导致uploader上传失败
//设置延迟上传,等待上传校验完成,避免争用。
setTimeout(function(){
uploader.start()
},800)
实现
点击查看代码
<div id="checkcontainer" >
<a id="importBtn" href="javascript:void(0);" class="easyui-linkbutton button-blue" style=" width: 300px;height: 26px;margin-top: 40px;" >导入登记清单</a>
</div>
<div id="upcontainer" style="display: none;">
<a id="importDjBtn" href="javascript:void(0);" class="easyui-linkbutton button-blue" style="width: 300px;height: 26px;margin-top: 40px;" >上传登记清单</a>
</div>
<script>
var uploader = new plupload.Uploader({
runtimes : 'html5,flash,silverlight,html4',
browse_button : 'importDjBtn', // you can pass an id...
container: document.getElementById('upcontainer'), // ... or DOM Element itself
url:'/importDj',
flash_swf_url : '/assets/plupload-2.3.1/Moxie.swf',
silverlight_xap_url : '/assets/plupload-2.3.1/Moxie.xap',
multipart_params: {},
filters : {
max_file_size : '50mb',
mime_types: [
{title : "excle files", extensions : "xls,xlsx"}
]
},
init: {
PostInit: function() {},
BeforeUpload: function(up, file) {
$.messager.progress('close');
$.messager.progress({text:'正在导入('+file.name+')....',interval:100 });
},
FilesAdded: function(up, files) {
plupload.each(files, function(file) {
file.status = plupload.QUEUED;
});
},
FileUploaded: function(uploader,file,responseObject) {
var res = responseObject.response;
if(res != null && res != "") {
$.messager.alert('错误', res,'error');
}
else if(responseObject.status != '200') {
alert(file.name+' 导入失败:' + responseObject.response);
} else {
$.messager.show({ title:'提示', msg: '导入成功!'});
}
},
UploadComplete: function(up, files) {
$.messager.progress('close');
//清空当前队列
uploader.files = []
uploaderCheck.files = []
},
Error: function(up, err) {
$.messager.progress('close');
alert("\nError #" + err.code + ": " + err.message);
}
}
});
var uploaderCheck = new plupload.Uploader({
runtimes : 'html5,flash,silverlight,html4',
browse_button : 'importBtn', // you can pass an id...
container: document.getElementById('checkcontainer'), // ... or DOM Element itself
url : '/chekcImportDj',
flash_swf_url : '/assets/plupload-2.3.1/Moxie.swf',
silverlight_xap_url : '/assets/plupload-2.3.1/Moxie.xap',
multipart_params: {},
filters : {
max_file_size : '50mb',
mime_types: [
{title : "excle files", extensions : "xls,xlsx"}
]
},
init: {
PostInit: function() {},
FilesAdded: function(up, files) {
$.messager.confirm('请确认', "确认导入当前已登记的数据。", function (r) {
if (r) {
uploaderCheck.start();
}
});
},
BeforeUpload: function(up, file) {
$.messager.progress('close');
$.messager.progress({text:'正在导入('+file.name+')....',interval:100 });
},
FileUploaded: function(up,file,responseObject) {
var res = responseObject.response;
var resObj;
try{
resObj = JSON.parse(res);
}catch(err){}
if(res&&resObj){
if(resObj.state == 'fail'){
$.messager.confirm('确认导入?',resObj.msg,function(y){
if (y){
console.log(y);
//将文件添加到上传队列
uploader.addFile(file);
setTimeout(function(){
uploader.start()
},800)
}
});
}else if(resObj.state == 'ok'){
//将文件添加到上传队列
uploader.addFile(file);
setTimeout(function(){
uploader.start()
},800)
}
}else{
if(res != null && res != '') {
$.messager.alert('错误', res,'error');
}else if(responseObject.status != '200') {
alert(file.name+' 导入失败:' + responseObject.response);
} else {
$.messager.show({ title:'提示', msg: '校验成功!'});
}
}
},
UploadComplete: function(up, files) {
$.messager.progress('close');
},
Error: function(up, err) {
$.messager.progress('close');
alert("\nError #" + err.code + ": " + err.message);
}
}
});
$(function () {
uploaderCheck.init();
uploader.init();
});
</script>

浙公网安备 33010602011771号