您的位置:首页 > 产品设计 > UI/UE

(转)ueditor使用webuploader以后多图上传后顺序乱掉问题解决方法

2015-07-16 14:28 806 查看



原文网址:http://canlynet.iteye.com/blog/2155856

我上一个版本用的是ueditor1.3.6,自从1.4.2版以后,“前端上传模块统一改用webuploader”,ueditor在多图上传一直考虑漏掉了图片顺序的问题。

我的网站在用户上传图片文章的时候,使用多图上传,点确认后,编辑框内的图片顺序是乱的。

看webuploader的问题在于多线程上传,ueditor对“uploadSuccess”的处理是上传成功一张,就加入到数组中,这样如果图片上传完成顺序是乱的,最终加入文本框的顺序也乱了。

我这里修改了一下js,供大家参考,希望ueditor能改进这个问题:

vim dialogs/image/image.js

716 uploader.on('uploadSuccess', function (file, ret) {

717 var $file = $('#' + file.id);

718 try {

719 var responseText = (ret._raw || ret),

720 json = utils.str2json(responseText);

721 if (json.state == 'SUCCESS') {

722 _this.imageList[$file.index()] = json; // 按选择好的文件列表顺序存储

723 $file.append('');

724 } else {

725 $file.find('.error').text(json.state).show();

726 }

727 } catch (e) {

728 $file.find('.error').text(lang.errorServerUpload).show();

729 }

730 });

vim dialogs/attachment/attachment.js

500 uploader.on('uploadSuccess', function (file, ret) {

501 var $file = $('#' + file.id);

502 try {

503 var responseText = (ret._raw || ret),

504 json = utils.str2json(responseText);

505 if (json.state == 'SUCCESS') {

506 _this.fileList[$file.index()] = json;

507 $file.append('');

508 } else {

509 $file.find('.error').text(json.state).show();

510 }

511 } catch (e) {

512 $file.find('.error').text(lang.errorServerUpload).show();

513 }

514 });

vim dialogs/video/video.js

729 uploader.on('uploadSuccess', function (file, ret) {

730 var $file = $('#' + file.id);

731 try {

732 var responseText = (ret._raw || ret),

733 json = utils.str2json(responseText);

734 if (json.state == 'SUCCESS') {

735 uploadVideoList[$file.index()] = {

736 'url': json.url,

737 'type': json.type,

738 'original':json.original

739 };

740 $file.append('');

741 } else {

742 $file.find('.error').text(json.state).show();

743 }

744 } catch (e) {

745 $file.find('.error').text(lang.errorServerUpload).show();

746 }

747 });

如上,都使用了$file.index()作为数组下标,可以保证图片上传后顺序是按照用户选择图片以后,加入到预览窗口的顺序。

另外说一下:windows里选择图片用shift的时候连选,如果一开始选择1.jpg,然后按住shift选择10.jpg,结果这个10.jpg会在第一个,1~9.jpg反而在后面;需要先选择10.jpg,按住shift再选择1.jpg,这样图片顺序是1~10.jpg没错。有人能告诉原因和解决方法么?难道只能倒着连选?

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: