瀏覽代碼

1.【IOS端】H5分享文件进行下载后,点击单个文件进行暂停后,按钮切换暂停状态,但任务仍在传输中
2. 【IOS端】H5分享文件进行下载后,个别缩略图一闪一闪

huangxiaodong 1 年之前
父節點
當前提交
b2b28431bb

+ 93 - 82
创维盒子/双子星云手机/Class/Set/uploadFile/receiveView/boxDownloadFileRecordCell.m

@@ -219,92 +219,14 @@
     _progressBgView.hidden = NO;
     _upLoadStateButton.hidden = NO;
     
-    _curShareFileDataModel = curShareFileDataModel;
-    
-    NSArray *nameArr= [curShareFileDataModel.fileName componentsSeparatedByString:@"."];
-    
-    //HLog(@"fileName: %@",curShareFileDataModel.fileName);
-    if (nameArr.count >= 2) {
-        NSString *lastName = nameArr.lastObject;
+    if (!_curShareFileDataModel
+        || ![_curShareFileDataModel.fileUrl isEqualToString:curShareFileDataModel.fileUrl]) {
         
-        lastName = [lastName lowercaseString];
-        //HLog(@"lastName: %@",lastName);
-        if ([lastName rangeOfString:@"txt"].location != NSNotFound) {
-            _fileImageView.image = [UIImage imageNamed:@"uploadFile_TXT"];
-        }
-        else if ([lastName rangeOfString:@"pdf"].location != NSNotFound) {
-            _fileImageView.image = [UIImage imageNamed:@"uploadFile_pdf"];
-        }
-        else if ([lastName rangeOfString:@"xlsx"].location != NSNotFound) {
-            _fileImageView.image = [UIImage imageNamed:@"uploadFile_xlsx"];
-        }
-        else if ([lastName rangeOfString:@"doc"].location != NSNotFound
-                 ||[lastName rangeOfString:@"docx"].location != NSNotFound) {
-            _fileImageView.image = [UIImage imageNamed:@"uploadFile_doc"];
-        }
-        else if ([lastName rangeOfString:@"mp3"].location != NSNotFound
-                 ||[lastName rangeOfString:@"wav"].location != NSNotFound
-                 ||[lastName rangeOfString:@"flac"].location != NSNotFound
-                 ||[lastName rangeOfString:@"aac"].location != NSNotFound
-                 ||[lastName rangeOfString:@"ogg"].location != NSNotFound
-                 ) {
-            _fileImageView.image = [UIImage imageNamed:@"uploadFile_audio"];
-        }
-        else if ([lastName rangeOfString:@"jpg"].location != NSNotFound
-                 ||[lastName rangeOfString:@"jpeg"].location != NSNotFound
-                 ||[lastName rangeOfString:@"png"].location != NSNotFound
-                 ||[lastName rangeOfString:@"gif"].location != NSNotFound
-                 ||[lastName rangeOfString:@"bmp"].location != NSNotFound
-                 ||[lastName rangeOfString:@"svg"].location != NSNotFound
-                 ||[lastName rangeOfString:@"tiff"].location != NSNotFound
-                 ||[lastName rangeOfString:@"heic"].location != NSNotFound
-                 ) {//JPG、JPEG、PNG、GIF、BMP、SVG、TIFF、HEIC。
-            //MP4、AVI、FLV、WMV、MKV、TS、MOV、RMVB。
-            
-            NSString *fileUrl = curShareFileDataModel.headUrl;
-            fileUrl = [fileUrl  stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-            UIImage * defaultImage = [UIImage imageNamed:@"uploadFile_image"];
-            [_fileImageView sd_setImageWithURL:[NSURL URLWithString:fileUrl] placeholderImage:defaultImage completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
-                if(image){
-                    //HLog(@"11图片1:%@",imageURL.absoluteString);
-                }
-                else{
-                    //HLog(@"11图片0:%@",imageURL.absoluteString);
-                }
-                
-            }];
-        }
-        else if ([lastName rangeOfString:@"mp4"].location != NSNotFound
-                 ||[lastName rangeOfString:@"avi"].location != NSNotFound
-                 ||[lastName rangeOfString:@"flv"].location != NSNotFound
-                 ||[lastName rangeOfString:@"wmv"].location != NSNotFound
-                 ||[lastName rangeOfString:@"wkm"].location != NSNotFound
-                 ||[lastName rangeOfString:@"ts"].location != NSNotFound
-                 ||[lastName rangeOfString:@"mov"].location != NSNotFound
-                 ||[lastName rangeOfString:@"rmvb"].location != NSNotFound
-                 ) {//JPG、JPEG、PNG、GIF、BMP、SVG、TIFF、HEIC。
-            //MP4、AVI、FLV、WMV、MKV、TS、MOV、RMVB。
-            
-            NSString *fileUrl = curShareFileDataModel.headUrl;
-            fileUrl = [fileUrl  stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-            UIImage * defaultImage = [UIImage imageNamed:@"uploadFile_Video"];
-            [_fileImageView sd_setImageWithURL:[NSURL URLWithString:fileUrl] placeholderImage:defaultImage completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
-                if(image){
-                    //HLog(@"11图片1:%@",imageURL.absoluteString);
-                }
-                else{
-                    //HLog(@"11图片0:%@",imageURL.absoluteString);
-                }
-                
-            }];
-        }
-        else{
-            _fileImageView.image = [UIImage imageNamed:@"uploadFile_other"];
-        }
+        [self setFixedValueByModel:curShareFileDataModel];
     }
     
+    _curShareFileDataModel = curShareFileDataModel;
     
-    _fileNamelabel.text = curShareFileDataModel.fileName;
     
     //HLog(@"1111111: %@ %@",curShareFileDataModel.fileUrl,curShareFileDataModel.fileSize);
 
@@ -430,6 +352,95 @@
     
 }
 
+#pragma mark setImage
+- (void)setFixedValueByModel:(ShareFileDataModel *)curShareFileDataModel
+{
+    _fileNamelabel.text = curShareFileDataModel.fileName;
+    
+    NSArray *nameArr= [curShareFileDataModel.fileName componentsSeparatedByString:@"."];
+    
+    //HLog(@"fileName: %@",curShareFileDataModel.fileName);
+    if (nameArr.count >= 2) {
+        NSString *lastName = nameArr.lastObject;
+        
+        lastName = [lastName lowercaseString];
+        //HLog(@"lastName: %@",lastName);
+        if ([lastName rangeOfString:@"txt"].location != NSNotFound) {
+            _fileImageView.image = [UIImage imageNamed:@"uploadFile_TXT"];
+        }
+        else if ([lastName rangeOfString:@"pdf"].location != NSNotFound) {
+            _fileImageView.image = [UIImage imageNamed:@"uploadFile_pdf"];
+        }
+        else if ([lastName rangeOfString:@"xlsx"].location != NSNotFound) {
+            _fileImageView.image = [UIImage imageNamed:@"uploadFile_xlsx"];
+        }
+        else if ([lastName rangeOfString:@"doc"].location != NSNotFound
+                 ||[lastName rangeOfString:@"docx"].location != NSNotFound) {
+            _fileImageView.image = [UIImage imageNamed:@"uploadFile_doc"];
+        }
+        else if ([lastName rangeOfString:@"mp3"].location != NSNotFound
+                 ||[lastName rangeOfString:@"wav"].location != NSNotFound
+                 ||[lastName rangeOfString:@"flac"].location != NSNotFound
+                 ||[lastName rangeOfString:@"aac"].location != NSNotFound
+                 ||[lastName rangeOfString:@"ogg"].location != NSNotFound
+                 ) {
+            _fileImageView.image = [UIImage imageNamed:@"uploadFile_audio"];
+        }
+        else if ([lastName rangeOfString:@"jpg"].location != NSNotFound
+                 ||[lastName rangeOfString:@"jpeg"].location != NSNotFound
+                 ||[lastName rangeOfString:@"png"].location != NSNotFound
+                 ||[lastName rangeOfString:@"gif"].location != NSNotFound
+                 ||[lastName rangeOfString:@"bmp"].location != NSNotFound
+                 ||[lastName rangeOfString:@"svg"].location != NSNotFound
+                 ||[lastName rangeOfString:@"tiff"].location != NSNotFound
+                 ||[lastName rangeOfString:@"heic"].location != NSNotFound
+                 ) {//JPG、JPEG、PNG、GIF、BMP、SVG、TIFF、HEIC。
+            //MP4、AVI、FLV、WMV、MKV、TS、MOV、RMVB。
+            
+            NSString *fileUrl = curShareFileDataModel.headUrl;
+            fileUrl = [fileUrl  stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+            UIImage * defaultImage = [UIImage imageNamed:@"uploadFile_image"];
+            [_fileImageView sd_setImageWithURL:[NSURL URLWithString:fileUrl] placeholderImage:defaultImage completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
+                if(image){
+                    //HLog(@"11图片1:%@",imageURL.absoluteString);
+                }
+                else{
+                    //HLog(@"11图片0:%@",imageURL.absoluteString);
+                }
+                
+            }];
+        }
+        else if ([lastName rangeOfString:@"mp4"].location != NSNotFound
+                 ||[lastName rangeOfString:@"avi"].location != NSNotFound
+                 ||[lastName rangeOfString:@"flv"].location != NSNotFound
+                 ||[lastName rangeOfString:@"wmv"].location != NSNotFound
+                 ||[lastName rangeOfString:@"wkm"].location != NSNotFound
+                 ||[lastName rangeOfString:@"ts"].location != NSNotFound
+                 ||[lastName rangeOfString:@"mov"].location != NSNotFound
+                 ||[lastName rangeOfString:@"rmvb"].location != NSNotFound
+                 ) {//JPG、JPEG、PNG、GIF、BMP、SVG、TIFF、HEIC。
+            //MP4、AVI、FLV、WMV、MKV、TS、MOV、RMVB。
+            
+            NSString *fileUrl = curShareFileDataModel.headUrl;
+            fileUrl = [fileUrl  stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+            UIImage * defaultImage = [UIImage imageNamed:@"uploadFile_Video"];
+            [_fileImageView sd_setImageWithURL:[NSURL URLWithString:fileUrl] placeholderImage:defaultImage completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
+                if(image){
+                    //HLog(@"11图片1:%@",imageURL.absoluteString);
+                }
+                else{
+                    //HLog(@"11图片0:%@",imageURL.absoluteString);
+                }
+                
+            }];
+        }
+        else{
+            _fileImageView.image = [UIImage imageNamed:@"uploadFile_other"];
+        }
+    }
+    
+    
+}
 
 -(void)longPressClick:(UILongPressGestureRecognizer *)press{
     //state属性是所有手势父类提供的方法,用于记录手势的状态

+ 43 - 9
创维盒子/双子星云手机/Class/Set/uploadFile/receiveView/receiveDownloadRecordTableView.m

@@ -74,7 +74,11 @@
     }
     
     _downloadDoneArr = [NSMutableArray arrayWithArray:outSideDataArr[1]];
+    
+    //HLog(@"111--%@",_downloadDoneArr);
     _downloadfailArr = [NSMutableArray arrayWithArray:outSideDataArr[2]];
+    //HLog(@"2222--%@",_downloadfailArr);
+
     
     [self RefreshAllDataFun];
 }
@@ -160,11 +164,11 @@
             cell.didTapPressClick = ^{
                 if(model.downloadBoxStateType == downloadBoxStateDownloadloading){
                     model.downloadBoxStateType = downloadBoxStateSuspend;
-                    [weakSelf handleDownloadingStateTapFunBy:YES with:model];
+                    [weakSelf handleDownloadingStateTapFunBy:YES with:model AtIndexPath:indexPath];
                 }
                 else if(model.downloadBoxStateType == downloadBoxStateSuspend){
                     model.downloadBoxStateType = downloadBoxStateDownloadloading;
-                    [weakSelf handleDownloadingStateTapFunBy:NO with:model];
+                    [weakSelf handleDownloadingStateTapFunBy:NO with:model AtIndexPath:indexPath];
                 }
                 else if(model.downloadBoxStateType == downloadBoxStateFail){
                     [weakSelf handleUploadFailStateWith:model];
@@ -501,19 +505,26 @@
 
 
 #pragma mark 处理上传中的 状态点击事件
-- (void)handleDownloadingStateTapFunBy:(BOOL)isSuspendType with:(ShareFileDataModel*)model
+- (void)handleDownloadingStateTapFunBy:(BOOL)isSuspendType with:(ShareFileDataModel*)model AtIndexPath:(NSIndexPath *)indexPath
 {
     NSString *urlString = model.fileUrl;
     NSString *requestURLEncodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
     
-    if (isSuspendType) {
+    HLog(@"%d",isSuspendType);
+    
+    if(isSuspendType){
+        HLog(@"supendDownloadWithUrl");
         [[SGDownloadManager shareManager] supendDownloadWithUrl:requestURLEncodedString];
     }
     else{
+        HLog(@"startDownLoadWithUrl");
         [[SGDownloadManager shareManager] startDownLoadWithUrl:requestURLEncodedString];
     }
     
-    [self reloadDataFun];
+    //[self reloadDataFun];
+    if(indexPath){
+        [self reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
+    }
 }
 
 #pragma mark 处理上传中的 状态点击事件
@@ -609,12 +620,33 @@
 {
     SGDownloadOperation *model = notification.userInfo.allValues.firstObject;
     HLog(@"下载中 %lld",model.currentSize);
+    
+    //下载失败返回 61个字节? 没有报错 特殊处理
+//    if(model.currentSize == model.totalSize
+//       && model.currentSize < 200){
+//        
+//        if(model.totalSize == 0){
+//            model.downloadState = DownloadStateFailed;
+//            [[NSNotificationCenter defaultCenter] postNotificationName:SGDownloadTaskExeError object:model];
+//        }
+//        
+//        NSString * pathStr= model.fullPath;
+//        NSData * jsonData = [[NSData alloc] initWithContentsOfFile:pathStr];
+//        if(jsonData){
+//            NSDictionary *myDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
+//            
+//            if(myDictionary){
+//                HLog(@"%@",myDictionary);
+//            }
+//        }
+//        
+//    }
+    
     KWeakSelf
     mainBlock(^{
         [weakSelf handldDownloadingDataBy:model];
     });
     
-    //[[SGDownloadManager shareManager] supendDownloadWithUrl:model.url];
 }
 
 - (void)downloadTaskExeSupend:(NSNotification *)notification
@@ -680,7 +712,7 @@
     for (ShareFileDataModel*dataModel in _downloadingArr) {
         //HLog(@"22222222 %@\n%@",urlString,dataModel.fileUrl);
         if([urlString isEqualToString:dataModel.fileUrl]){
-            dataModel.totalSize = model.totalSize;
+            //dataModel.totalSize = model.totalSize;
             dataModel.currentSize = model.currentSize;
             dataModel.downloadBoxStateType = downloadBoxStateFail;
             
@@ -800,7 +832,8 @@
          //NSLog(@"success = %d, error = %@", success, error);
          if (success) {
              HLog(@"已将图片保存至相册");
-             [[NSFileManager defaultManager] removeItemAtPath:fullPath error:nil];
+             //删除记录的时间再处理
+             //[[NSFileManager defaultManager] removeItemAtPath:fullPath error:nil];
          } else {
              HLog(@"未能将图片保存至相册");
          }
@@ -819,7 +852,8 @@
     } completionHandler:^(BOOL success, NSError * _Nullable error) {
         if (success) {
             HLog(@"已将视频保存至相册");
-            [[NSFileManager defaultManager] removeItemAtPath:pathStr error:nil];
+            //删除记录的时间再处理
+            //[[NSFileManager defaultManager] removeItemAtPath:pathStr error:nil];
         } else {
             HLog(@"未能将视频保存至相册");
         }

+ 2 - 1
创维盒子/双子星云手机/Class/Set/uploadFile/uploadFileRecordViewController.m

@@ -1171,7 +1171,8 @@
                 // 上传
                 NSLog(@"fileName : %@-- %@", fileName,pathStr);
                 
-                [[NSFileManager defaultManager] removeItemAtPath:pathStr error:nil];;
+                //删除记录的时间再处理
+                //[[NSFileManager defaultManager] removeItemAtPath:pathStr error:nil];;
             }
         }];
         [urls.firstObject stopAccessingSecurityScopedResource];