上传文件插件(plupload)

引入插件:

<script src="../../static/js/plupload.full.min.js"></script>
/*
     * 上传文件配置
     * */
    //配置uploader
    var uploader = new plupload.Uploader({
        runtimes: 'html5,flash,silverlight,html4',
        browse_button : 'uploader',
        url:'/delivery/batchSendByFile',
        flash_swf_url : '../Moxie.swf',
        silverlight_xap_url : '../Moxie.xap',
        multi_selection:false,
        filters: {
            mime_types : [ //只允许上传xls和xlsx文件
                { title : "xls files", extensions : "xls" },
                { title : "xlsx files", extensions : "xlsx" }
            ]
        },
        preinit: {
            UploadFile: function (up) {
                up.setOption('url', '/delivery/batchSendByFile');
            }
        }
    });
    uploader.bind('Error', function (uploader, errObject) {
        var message = '';
        //解除锁定
        layer.closeAll('loading');
        if (errObject.code === -600) {
            message = '上传的文件太大';
        } else if (errObject.code === -200) {
            message = '由于网络原因,文件没有上传成功';
        } else if (errObject.code === -601) {
            message = '选择的文件类型不是xls或xlsx类型';
        }
        layer.msg('上传失败,错误原因:' + message,{end:function(){
            layer.closeAll();
        }});
    });
    //选中文件触发
    uploader.bind('FilesAdded', function(uploader,files) {
        var tipElement = $('#uploadBox').find('.J_side');
        controller.uploadFlag = true;
        for(var i = 0, len = files.length; i<len; i++){
            tipElement.text(files[i].name).css('color','#e62e3a');
        }
    });
    //文件上传后触发
    uploader.bind('FileUploaded',function(uploader,file,responseObject){
        var msg = JSON.parse(responseObject.response),num;
        //解除锁定
        layer.closeAll();
        /** @namespace msg.failureNum */
        /** @namespace msg.successNum */
        num = msg.successNum + msg.failureNum;
        /** @namespace data.activityerror*/
        if(msg.activityerror){
            layer.msg(msg.activityerror);
        }else if(msg.issuccess*1 === 3){
            layer.msg('全部上传失败!');
        }else /** @namespace msg.issuccess */
        if(msg.issuccess*1 === 2){
            layer.msg('上传' + num + '条纪录,成功' + msg.successNum + '条,失败' + msg.failureNum + '条',{end:function(){
                window.location.reload();
            }});
        }else if (msg.issuccess*1 === 1){
            layer.msg('全部上传成功',{end:function(){
                window.location.reload();
            }});
        }
    });
原文地址:https://www.cnblogs.com/donglf/p/6382425.html