|
|
@@ -537,11 +537,7 @@ Page({
|
|
537
|
537
|
|
|
538
|
538
|
});
|
|
539
|
539
|
} else {
|
|
540
|
|
- wx.showToast({
|
|
541
|
|
- title: '图片上传失败1',
|
|
542
|
|
- image: "../images/universalpic_exclamation_white_120x120.png",
|
|
543
|
|
- mask: true,
|
|
544
|
|
- });
|
|
|
540
|
+ isSave = true;
|
|
545
|
541
|
}
|
|
546
|
542
|
});
|
|
547
|
543
|
}
|
|
|
@@ -642,122 +638,109 @@ Page({
|
|
642
|
638
|
},
|
|
643
|
639
|
uploadImageAll: function (arr, callback) {
|
|
644
|
640
|
var that = this;
|
|
645
|
|
- var b = false;
|
|
646
|
|
- var arrSource = [],
|
|
647
|
|
- arrResult = [];
|
|
|
641
|
+ var uploadList = [];
|
|
648
|
642
|
for (var i = 0; i < arr.length; i++) {
|
|
649
|
643
|
for (var j = 0; j < arr[i].length; j++) {
|
|
650
|
644
|
if (arr[i][j].Type == "image" && arr[i][j].Content) {
|
|
651
|
|
- arrSource.push(arr[i][j].Content);
|
|
652
|
|
- if (arr[i][j].ContentServer.indexOf(app.globalData.uploadImageUrl) >= 0 ||
|
|
653
|
|
- arr[i][j].ContentServer.indexOf("baidu.com") >= 0 ||
|
|
654
|
|
- arr[i][j].ContentServer.indexOf("bcebos.com") >= 0) {
|
|
655
|
|
- var result = {};
|
|
656
|
|
- result.Source = arr[i][j].ContentServer;
|
|
657
|
|
- result.Target = arr[i][j].ContentServer;
|
|
658
|
|
-
|
|
659
|
|
- arrResult.push(result);
|
|
660
|
|
- } else {
|
|
661
|
|
- var source = arr[i][j].Content;
|
|
662
|
|
- that.uploadFileToServer(source, function (data) {
|
|
663
|
|
- if (data) {
|
|
664
|
|
- var result = data;
|
|
665
|
|
- result.Target = app.globalData.uploadImageUrl + result.Target;
|
|
666
|
|
- arrResult.push(result);
|
|
667
|
|
- }
|
|
668
|
|
- });
|
|
669
|
|
- }
|
|
|
645
|
+ var contentServer = arr[i][j].ContentServer || "";
|
|
|
646
|
+ if (contentServer.indexOf(app.globalData.uploadImageUrl) < 0 &&
|
|
|
647
|
+ contentServer.indexOf("baidu.com") < 0 &&
|
|
|
648
|
+ contentServer.indexOf("bcebos.com") < 0)
|
|
|
649
|
+ uploadList.push(arr[i][j]);
|
|
670
|
650
|
}
|
|
671
|
651
|
}
|
|
672
|
652
|
}
|
|
673
|
653
|
|
|
674
|
|
- //检查是否上传成功
|
|
675
|
|
- setTimeout(function () {
|
|
676
|
|
- console.log(arrResult.length);
|
|
677
|
|
- console.log(arrSource.length);
|
|
678
|
|
- if (arrResult.length >= arrSource.length) {
|
|
679
|
|
- //console.log("arrResult:" + JSON.stringify(arrResult));
|
|
680
|
|
-
|
|
681
|
|
- var success = true;
|
|
682
|
|
-
|
|
683
|
|
- var ari = 0;
|
|
684
|
|
- for (var i = 0; i < arr.length; i++) {
|
|
685
|
|
- for (var j = 0; j < arr[i].length; j++) {
|
|
686
|
|
- if (arr[i][j].Type == "image" && arr[i][j].Content) {
|
|
687
|
|
- var tempUrl = arr[i][j].Content;
|
|
688
|
|
- var serverUrl = "";
|
|
689
|
|
- for (var k = 0; k < arrResult.length; k++) {
|
|
690
|
|
- if (tempUrl.indexOf(arrResult[k].Source) >= 0) {
|
|
691
|
|
- serverUrl = arrResult[k].Target;
|
|
692
|
|
- break;
|
|
693
|
|
- }
|
|
694
|
|
- }
|
|
695
|
|
- console.log("serverUrl:" + serverUrl);
|
|
696
|
|
-
|
|
697
|
|
- arr[i][j].Content = serverUrl;
|
|
698
|
|
- arr[i][j].ContentServer = serverUrl;
|
|
|
654
|
+ if (uploadList.length == 0) {
|
|
|
655
|
+ callback(true, arr);
|
|
|
656
|
+ return;
|
|
|
657
|
+ }
|
|
699
|
658
|
|
|
700
|
|
- if (serverUrl == "") {
|
|
701
|
|
- success = false;
|
|
702
|
|
- break;
|
|
703
|
|
- }
|
|
704
|
|
- }
|
|
705
|
|
- }
|
|
706
|
|
- }
|
|
707
|
|
- //console.log(JSON.stringify(arr));
|
|
708
|
|
- callback(success, arr);
|
|
709
|
|
- }
|
|
710
|
|
- }, 2000);
|
|
711
|
|
- },
|
|
712
|
|
- uploadFileToServer: function (file, callback) {
|
|
713
|
|
- var url = common.Encrypt("MiaoguoUploadFile2");
|
|
|
659
|
+ var finishedCount = 0;
|
|
|
660
|
+ var failedCount = 0;
|
|
714
|
661
|
wx.showLoading({
|
|
715
|
|
- title: '上传中',
|
|
|
662
|
+ title: '上传 0/' + uploadList.length,
|
|
716
|
663
|
mask: true,
|
|
717
|
664
|
});
|
|
718
|
|
- wx.uploadFile({
|
|
719
|
|
- url: app.globalData.serverUrl + url,
|
|
720
|
|
- filePath: file,
|
|
721
|
|
- name: 'file',
|
|
722
|
|
- success(res) {
|
|
723
|
|
- var err = JSON.parse(res.data);
|
|
724
|
|
- if (err.errcode == 10000) {
|
|
|
665
|
+
|
|
|
666
|
+ for (var k = 0; k < uploadList.length; k++) {
|
|
|
667
|
+ (function (image) {
|
|
|
668
|
+ that.uploadFileToServer(image.Content, function (data) {
|
|
|
669
|
+ if (data && data.Target) {
|
|
|
670
|
+ var serverUrl = app.globalData.uploadImageUrl + data.Target;
|
|
|
671
|
+ image.Content = serverUrl;
|
|
|
672
|
+ image.ContentServer = serverUrl;
|
|
|
673
|
+ } else {
|
|
|
674
|
+ failedCount++;
|
|
|
675
|
+ }
|
|
|
676
|
+
|
|
|
677
|
+ finishedCount++;
|
|
|
678
|
+ if (finishedCount < uploadList.length) {
|
|
|
679
|
+ wx.showLoading({
|
|
|
680
|
+ title: '上传 ' + finishedCount + '/' + uploadList.length,
|
|
|
681
|
+ mask: true,
|
|
|
682
|
+ });
|
|
|
683
|
+ return;
|
|
|
684
|
+ }
|
|
|
685
|
+
|
|
|
686
|
+ clearTimeout(timeoutUploadImage);
|
|
725
|
687
|
wx.hideLoading();
|
|
726
|
|
- callback(err.result);
|
|
727
|
|
- // setTimeout(function () {
|
|
728
|
|
- // wx.downloadFile({
|
|
729
|
|
- // url: err.result.Target,
|
|
730
|
|
- // success(res) {
|
|
731
|
|
- // wx.hideLoading();
|
|
732
|
|
- // if (res.statusCode != 200) {
|
|
733
|
|
- // wx.showModal({
|
|
734
|
|
- // title: '上传图片可能失败',
|
|
735
|
|
- // showCancel: false,
|
|
736
|
|
- // confirmText: '知道了',
|
|
737
|
|
- // content: "请点左下角“复查”后编辑上一张题卡重新上传图片。"
|
|
738
|
|
- // });
|
|
739
|
|
- // } else {
|
|
740
|
|
- // console.log("上传成功");
|
|
741
|
|
- // }
|
|
742
|
|
- // }
|
|
743
|
|
- // });
|
|
744
|
|
- // }, 5000);
|
|
745
|
|
- } else {
|
|
|
688
|
+ if (failedCount > 0) {
|
|
|
689
|
+ wx.showModal({
|
|
|
690
|
+ title: '图片上传失败',
|
|
|
691
|
+ showCancel: false,
|
|
|
692
|
+ confirmText: '知道了',
|
|
|
693
|
+ content: '有' + failedCount + '张图片未上传成功,请检查网络后再次保存。已经上传成功的图片不需要重传。',
|
|
|
694
|
+ });
|
|
|
695
|
+ }
|
|
|
696
|
+ callback(failedCount == 0, arr);
|
|
|
697
|
+ }, 0, true);
|
|
|
698
|
+ })(uploadList[k]);
|
|
|
699
|
+ }
|
|
|
700
|
+ },
|
|
|
701
|
+ uploadFileToServer: function (file, callback, retryCount, silentFailure) {
|
|
|
702
|
+ var that = this;
|
|
|
703
|
+ var currentRetry = retryCount || 0;
|
|
|
704
|
+ var url = common.Encrypt("MiaoguoUploadFile2");
|
|
|
705
|
+
|
|
|
706
|
+ function retryOrComplete(errorMessage) {
|
|
|
707
|
+ if (currentRetry < 1) {
|
|
|
708
|
+ setTimeout(function () {
|
|
|
709
|
+ that.uploadFileToServer(file, callback, currentRetry + 1, silentFailure);
|
|
|
710
|
+ }, 600);
|
|
|
711
|
+ } else {
|
|
|
712
|
+ if (!silentFailure) {
|
|
746
|
713
|
wx.hideLoading();
|
|
747
|
714
|
wx.showModal({
|
|
748
|
715
|
title: '上传文件失败',
|
|
749
|
716
|
showCancel: false,
|
|
750
|
|
- content: JSON.stringify(err.errMsg),
|
|
|
717
|
+ content: errorMessage || '请检查网络后重试',
|
|
751
|
718
|
});
|
|
752
|
719
|
}
|
|
|
720
|
+ callback(null);
|
|
|
721
|
+ }
|
|
|
722
|
+ }
|
|
|
723
|
+
|
|
|
724
|
+ wx.uploadFile({
|
|
|
725
|
+ url: app.globalData.serverUrl + url,
|
|
|
726
|
+ filePath: file,
|
|
|
727
|
+ name: 'file',
|
|
|
728
|
+ success(res) {
|
|
|
729
|
+ var result;
|
|
|
730
|
+ try {
|
|
|
731
|
+ result = JSON.parse(res.data);
|
|
|
732
|
+ } catch (error) {
|
|
|
733
|
+ retryOrComplete('服务器返回数据格式错误');
|
|
|
734
|
+ return;
|
|
|
735
|
+ }
|
|
|
736
|
+
|
|
|
737
|
+ if (result.errcode == 10000)
|
|
|
738
|
+ callback(result.result);
|
|
|
739
|
+ else
|
|
|
740
|
+ retryOrComplete(result.errMsg || '服务器未能完成上传');
|
|
753
|
741
|
},
|
|
754
|
|
- fail: function (err) {
|
|
755
|
|
- wx.hideLoading();
|
|
756
|
|
- wx.showModal({
|
|
757
|
|
- title: '上传文件失败',
|
|
758
|
|
- showCancel: false,
|
|
759
|
|
- content: JSON.stringify(err),
|
|
760
|
|
- });
|
|
|
742
|
+ fail: function (error) {
|
|
|
743
|
+ retryOrComplete(error.errMsg || '网络连接失败');
|
|
761
|
744
|
}
|
|
762
|
745
|
});
|
|
763
|
746
|
},
|