天天看点

使用plupload.js上传文件

1、引入js文件

2、html文件

<input id="filecomment" class="data_sc data_sc1"  type="hidden">
<span class="choseFile">
     <input type="button" name="" id="browse" value="选取文件" />
</span>
      
<button id="start_upload">开始上传</button>      

3、js初始化上传控件

//初始化上传控件
var uploader = new plupload.Uploader({
   browse_button : 'browse',
   url : url,//对应的文件上传的后台路径
   max_file_size: '20mb',//限制为20MB
   filters: {
       mime_types: [ //只允许上传图片文件
           { title: "Excle文件", extensions: "xls,xlsx" }
       ]
   }
});
uploader.init();//这句必须有

//文件添加时的事件
uploader.bind('FilesAdded', function (uploader, files) {
   var file = files[0];
   document.getElementById("filecomment").innerHTML+='<p class="clearfloat" id="p_' + file.id + '"><var><a       href="javascript:downloadfile(\'\');" target="_blank" rel="external nofollow"  id="down'+file.id+'" title="'+file.name+'">' +
       ' </a>(' + plupload.formatSize(file.size) + ')<b></b></var><span id="error_'+file.id+'"></span>';
});
//开始上传
document.getElementById('start_upload').onclick = function(){
   if(document.getElementById("filecomment").text==''){
       layer.msg("请选择附件后上传!");
       return;
   }
   var name = $("#userName").val();
   if (name == "" || name == null) {
       layer.msg("真实姓名不能为空");
       return;
   } else if (name.length > 20) {
       layer.msg("姓名不能超过20位");
       return;
   }
   uploader.start();
}
uploader.bind('BeforeUpload', function (uploader, files) {
   var file = files[0];
//修改url向后台传参数
   uploader.settings.url = url + "/saveFiles?file="+ $("#filecomment").val();
});

// 完成上传完了,成功或者失败,先删除进度条。
uploader.bind( 'uploadComplete', function( file ) {
   layer.msg("上传完成!");
   currobj.showreportview(currobj.options.experimentId);
});
// 完成上传完了,成功或者失败,先删除进度条。
uploader.bind( 'Error', function( uploader,errObject  ) {
   var errcode=errObject.code;
   if(errcode==-600 ){
       //alert(err.file.name+"文件大小已超过5Mb,请重新选择上传");
       layer.msg(errObject.file.name+"文件大小已超过20Mb,请重新选择上传");
   }else if( errcode==-601 ){
       //alert(err.file.name+"文件格式错误,请重新选择上传");
       layer.msg(errObject.file.name+"文件格式错误,请选择Excle格式的文件后重新上传");
   }else{
       $("#error_"+errObject.file.id).text(errObject.message+" 请删除,重新上传");
   }
});