【经验】Ueditor错位问题

百度编辑器ueditor批量上传图片或者批量上传文件时,文件名称和内容不符合,错位问题

百度编辑器ueditor批量上传附件时,上传后的文件和实际文件名称错误,比如实际是文件名“dongcoder.xls”,上传后可能就成了“懂客.xls”。原因就是,上传文件时是异步上传,同时进行,导致上传完成的顺序和实际的顺序可能是不一样的,文件都有大小的不同。这是百度编辑器ueditor的一个BUG。
我的百度编辑器版本:1.4.3
修改文件可以解决,相应文件:ueditor\dialogs\attachment\attachment.js

大约在510行处,将原来的“_this.fileList.push(json);”注销,新加“_this.fileList[$file.index()] = json;”,详细参见下图:

            uploader.on('uploadSuccess', function (file, res) {
                var $file = $('#' + file.id);
                try {
                    var responseText = (res._raw || res),
                        json = utils.str2json(responseText);
                    if (json.state == "SUCCESS") {
                        // _this.imageList.push(json);
                        _this.fileList[$file.index()] = json;
                        $file.append('<span class="success"></span>');
                    } else {
                        $file.find('.error').text(json.state).show();
                    }
                } catch (e) {
                    $file.find('.error').text(lang.errorServerUpload).show();
                }
            });

在下方大约551行处,getInsertList方法内,增加“if (data == undefined) { continue; }”,详细参见下图:

        getInsertList: function () {
            var i, link, data, list = [],
                prefix = editor.getOpt('fileUrlPrefix'),
                fileSrcField = editor.getOpt("fileUploadService")(this, editor).fileSrcField || 'url',
                fileSrc = '',
                fileSrcFieldKeys = fileSrcField.split('.');

            for (i = 0; i < this.fileList.length; i++) {
                data = this.fileList[i];
                if (data == undefined) { continue; }

                if(fileSrcFieldKeys.length > 1) {
                    function setFileSrc(obj, keys, index) {
                        obj = obj[keys[index]];
                        if (index < keys.length - 1) {
                            setFileSrc(obj, keys, index += 1)
                        } else {
                            fileSrc = obj;
                        }
                    }

                    setFileSrc(data, fileSrcFieldKeys, 0);
                } else {
                    fileSrc = data[fileSrcField];
                }
                link = fileSrc;
                list.push({
                    title: data.original || link.substr(link.lastIndexOf('/') + 1),
                    url: prefix + link
                });
            }
            return list;
        }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值