前端界面extjs整合webuploader

1.上传文件按钮代码

'<div id="uploader">' +
    '<div id="thelist" class="uploader-list"></div>' +
    '<div class="btns">' +
           ' <div id="picker">选择...</div>'+
     '</div>'+
 '</div>'

2.css

 #picker 
 {
     display: inline-block;
     line-height: 1.428571429;
     vertical-align: middle;
     margin: 0 12px 0 5px;
 }
 #picker div:nth-child(2){width:100%!important;height:100%!important;} 
 #picker .webuploader-pick 
 {
     padding: 4px 12px;
     display: block;
     background-color: #5fa2dd;
 }

3.WebUploader 处理逻辑

 var this = me;
 this.uploader = WebUploader.create({
    // swf文件路径
    //swf: '',
    // 文件接收服务端。
    server: '',
    // 选择文件的按钮。可选。
    // 内部根据当前运行是创建,可能是input元素,也可能是flash.
    pick: '#picker',
    //禁用拖拽上传
    disableGlobalDnd: true,
    // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
    resize: false,
    //分片
    chunked: true,
    //每片大小
    chunkSize: 2*1024*1024,
    //单片失败后重试次数
    chunkRetry: 0,
    //上传并发线程数
    threads: 1,
    //可上传文件数量
    fileNumLimit: 1,
    //可重复上传
    duplicate: true
});
this.uploader.on('beforeFileQueued', function (file) 
{
   if(me.uploader.getFiles().length)
   {
        me.uploader.removeFile(me.uploader.getFiles()[0],true);
   }
});
// 当有文件被添加进队列的时候
this.uploader.on('fileQueued', function (file) 
{
   me.fileNameCtl.setValue(file.name);
});

// 文件上传过程中创建进度条实时显示。
this.uploader.on('uploadProgress', function (file, percentage) 
{
    if(!me.progressBar || me.progressBar.isHidden())
    {
        me.progressBar=Ext.Msg.show({
            title: '提示信息',
            closable: false,
            msg: '加载中',
            progress:true,
            width:300
        });
    }
    percentage =  percentage.toFixed(2);
    me.progressBar.updateProgress(percentage,(percentage*100).toFixed(0) + '%');
});
this.uploader.on('uploadAccept', function (block, ret, fn) 
{
     if(!ret.success)
     {
        me.errorRespnse = ret;
        return false;
     }
});

this.uploader.on('uploadSuccess', function (file, response) 
{
    if (response.success) 
    {
        me.progressBar.msg.update(Lang.Common.uploadSucess);
        me.suceesFlag = true;
    }
});
this.uploader.on('uploadError', function (file) 
{
    me.progressBar.msg.update(Lang.Common.uploadFail);
    if(me.errorRespnse) return;
    me.fileNameCtl.setValue('');
    me.uploader.reset();
});

this.uploader.on('uploadComplete', function (file) 
{
    Utils.delayCall(function()
    {
        me.btnOK.setDisabled(false);
        me.progressBar.hide();
        if(me.errorRespnse)
        {
            Ext.MessageBox.alert('错误信息', Ext.String.format('操作失败,{0}:{1}', me.errorRespnse.errorCode, Lang.Error[me.errorRespnse.errorCode]+(me.errorRespnse.errorMsg || '')), function()
            {
                me.errorRespnse = null;
            }, me);
            return;
        }
        else if(me.suceesFlag)
        {    
            me.close();
            me.userCallback  && me.userCallback.fn.call(me.userCallback.scope);
        }
    }, me, 500);
    
});

4.上传

var GUID = WebUploader.Base.guid();
this.uploader.options.formData = Ext.apply({},{guid: GUID, /*type: type,*/ name});
var files = this.uploader.getFiles();
if(files.length)
{
    files[0].setStatus("inited");
}
this.uploader.upload();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值