我上一個(gè)版本用的是ueditor1.3.6,自從1.4.2版以后,“前端上傳模塊統(tǒng)一改用webuploader”,ueditor在多圖上傳一直考慮漏掉了圖片順序的問題。
我的網(wǎng)站在用戶上傳圖片文章的時(shí)候,使用多圖上傳,點(diǎn)確認(rèn)后,編輯框內(nèi)的圖片順序是亂的。
看webuploader的問題在于多線程上傳,ueditor對(duì)“uploadSuccess”的處理是上傳成功一張,就加入到數(shù)組中,這樣如果圖片上傳完成順序是亂的,最終加入文本框的順序也亂了。
我這里修改了一下js,供大家參考,希望ueditor能改進(jìn)這個(gè)問題:
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; // 按選擇好的文件列表順序存儲(chǔ)
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()作為數(shù)組下標(biāo),可以保證圖片上傳后順序是按照用戶選擇圖片以后,加入到預(yù)覽窗口的順序。
另外說一下:windows里選擇圖片用shift的時(shí)候連選,如果一開始選擇1.jpg,然后按住shift選擇10.jpg,結(jié)果這個(gè)10.jpg會(huì)在第一個(gè),1~9.jpg反而在后面;需要先選擇10.jpg,按住shift再選擇1.jpg,這樣圖片順序是1~10.jpg沒錯(cuò)。有人能告訴原因和解決方法么?難道只能倒著連選?
用作品證明實(shí)力,網(wǎng)站建設(shè)行業(yè)排名前列