Bladeren bron

1.上传断点续传优化(开始获取到的长度为零)

huangxiaodong 1 jaar geleden
bovenliggende
commit
d37f0d3f57
1 gewijzigde bestanden met toevoegingen van 34 en 4 verwijderingen
  1. 34 4
      创维盒子/双子星云手机/CloudPlayer/PlayerViewController+upLoadFile.m

+ 34 - 4
创维盒子/双子星云手机/CloudPlayer/PlayerViewController+upLoadFile.m

@@ -197,7 +197,8 @@
        
         long long endOfFile = [fileHandle seekToEndOfFile];
         
-        if(self.curUploadFileDataMod.totalBytes == 0){//异常处理
+        if(self.curUploadFileDataMod.totalBytes == 0
+           || self.curUploadFileDataMod.totalBytes < endOfFile){//异常处理
             self.curUploadFileDataMod.totalBytes = endOfFile;
         }
         
@@ -261,8 +262,36 @@
                         fileLengthNum = data[@"fileLenth"];
                     }
                     
-                    self.curUploadPostion = [fileLengthNum longValue];
-                    [self handleUploadingFun:fileLengthNum];
+                     if (fileLengthNum && fileLengthNum.longLongValue >= self.curUploadFileDataMod.totalBytes)
+                     {//
+                         //告诉代理 完成了
+                         NSString *commandStr = [RCCommandHelp uploadOrBackupsDoneBy:self.taskUid withFileName:self.fileName withType:YES];
+                        
+                         [self.commandChannelManager rc_sendData:commandStr];
+                         
+                         [self clearUploadFileDataFun];
+                         [[uploadFileManager shareInstance] uploadFileDoneFun];
+                     }
+                     else{
+                         //异常处理
+                         if([fileLengthNum longValue] - self.curUploadPostion > EachPieceSzie){
+                             HLog(@"发现上传后返回的长度 出错");
+                             
+                             if(self.curUploadFileDataMod.curUploadFileType == uploadFileTypeVideo)
+                             {//清除已经取出来的数据  后面会根据fileLengthNum 重新拿数据
+                                 self.cutFileDataArr = [NSMutableArray new];
+                             }
+                             else{
+                                 NSInteger curIndex = [fileLengthNum longValue] % EachPieceSzie;
+                                 //把当前的上传位置指定已经上传的前一片,后续++
+                                 self.indexOfUploadFlie = curIndex -1;
+                             }
+                         }
+                         
+                         self.curUploadPostion = [fileLengthNum longValue];
+                         [self handleUploadingFun:fileLengthNum];
+                     }
+
                 }
                  else if ([status isEqualToString:@"2"]) {
                      [self clearUploadFileDataFun];
@@ -372,7 +401,8 @@
         return;
     }
     
-    if(self.indexOfUploadFlie < self.cutFileDataArr.count -1) {
+    if(self.cutFileDataArr.count > 0
+       && self.indexOfUploadFlie < (self.cutFileDataArr.count -1)) {
         
         //NSInteger didUploadSize = (self.indexOfUploadFlie+1) * (self.cutFileEachPieceSzie);
         NSInteger didUploadSize = fileLengthNum.longLongValue;