Explorar el Código

1.图片和视频的其他格式(指保存到相册失败的图片)保存到文件

huangxiaodong hace 1 año
padre
commit
de7e464ee5

+ 23 - 9
创维盒子/双子星云手机/CloudPlayer/PlayerViewController+downloadFile.m

@@ -129,21 +129,35 @@
 
 - (void)handleDownloadDoneFun
 {
+    NSString *fileName = [self.curDownloadFileModel getFileNameFun];
+    NSString*pathStr = [cachesFileManager getFilePathWithName:fileName type:DownLoadFileType];
+    
     if([self.curDownloadFileModel.fileType isEqualToString:@".jpg"]){
-        NSString *fileName = [self.curDownloadFileModel getFileNameFun];
-        NSString*pathStr = [cachesFileManager getFilePathWithName:fileName type:DownLoadFileType];
-        UIImage *image = [UIImage imageWithContentsOfFile:pathStr];
-        
-        if(image){
-            [self loadImageFinished:image];
+       
+        if([iTools canSaveFileToAlbumByPhoto:YES withName:fileName]){
+            UIImage *image = [UIImage imageWithContentsOfFile:pathStr];
+            
+            if(image){
+                [self loadImageFinished:image];
+            }
+            else{
+                [cachesFileManager removeItemAtPath:fileName type:DownLoadFileType error:nil];
+                [[downloadManager shareInstance] DownloadFileFailOneFileFun];
+            }
         }
         else{
-            [cachesFileManager removeItemAtPath:fileName type:DownLoadFileType error:nil];
-            [[downloadManager shareInstance] DownloadFileFailOneFileFun];
+            [self loadOtherDataFinished];
         }
+        
     }
     else if([self.curDownloadFileModel.fileType isEqualToString:@"video"]){
-        [self loadVideoFinished];
+        if([iTools canSaveFileToAlbumByPhoto:NO withName:fileName]){
+            [self loadVideoFinished];
+        }
+        else{
+            [self loadOtherDataFinished];
+        }
+        
     }
     else
     {

+ 2 - 0
创维盒子/双子星云手机/Helpers/iTools.h

@@ -169,6 +169,8 @@ NS_ASSUME_NONNULL_BEGIN
 + (NSArray *)toArrayWithJsonStr:(NSString *)jsonStr;
 + (NSString *)toJsonStrWithArray:(NSArray *)arr;
 
+//判断图片和视频能不能保存到相册
++ (BOOL)canSaveFileToAlbumByPhoto:(BOOL)isPhotoType withName:(NSString*)nameStr;
 @end
 
 NS_ASSUME_NONNULL_END

+ 51 - 0
创维盒子/双子星云手机/Helpers/iTools.m

@@ -1151,4 +1151,55 @@ static const char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopq
     }
     return jsonStr;
 }
+
+//ios端:
+//1、需求说明:解决除MP4   MOV   3GP   M4V 总计4种格式外,其他格式下载失败的问题;
+//2、交互说明:下载列表勾选文件中含有其他格式,toast提示“IOS系统仅支持MP4、MOV、3GP、M4V 的视频格式,其他格式无法下载”。点击下载按钮,过滤其他格式文件,仅下载MP4、MOV、3GP、M4V 的视频格式文件;
+
+//ios支持图片格式: (SVG 不支持)
+//需求说明:解决除JPG  PNG  GIF TIFF  BMP总计5种格式外,其他格式下载失败的问题
+//视觉交互:选择文件中含有其他格式,toast提示“IOS系统仅支持JPG 、PNG、GIF、TIFF、BMP的图片格式,其他格式无法下载”。点击下载按钮,过滤其他格式文件,仅下载JPG 、PNG、GIF、TIFF、BMP的图片格式文件;
+
++ (BOOL)canSaveFileToAlbumByPhoto:(BOOL)isPhotoType withName:(NSString*)nameStr{
+    NSString*name = [nameStr lowercaseString];
+    NSArray *nameArr = [name componentsSeparatedByString:@"."];
+    if(nameArr.count >0 && !isPhotoType){
+        BOOL canDownLoadType = NO;
+
+        NSString *lastName = nameArr.lastObject;
+        if([lastName isEqualToString:@"mp4"]
+           ||[lastName isEqualToString:@"mov"]
+           ||[lastName isEqualToString:@"3gp"]
+           ||[lastName isEqualToString:@"m4v"]){
+            canDownLoadType = YES;
+        }
+
+        if(!canDownLoadType){
+            return NO;
+        }
+    }
+
+    if(nameArr.count >0 && isPhotoType){
+        BOOL canDownLoadType = NO;
+        //JPG 、PNG、GIF、TIFF、BMP
+        NSString *lastName = nameArr.lastObject;
+        if([lastName isEqualToString:@"jpg"]
+           ||[lastName isEqualToString:@"png"]
+           ||[lastName isEqualToString:@"gif"]
+           ||[lastName isEqualToString:@"tiff"]
+           ||[lastName isEqualToString:@"bmp"]
+           ||[lastName isEqualToString:@"heic"]
+           ||[lastName isEqualToString:@"jpeg"]
+           ||[lastName isEqualToString:@"heif"]){
+            canDownLoadType = YES;
+        }
+
+        if(!canDownLoadType){
+            return NO;
+        }
+    }
+    
+    return NO;
+}
+
 @end

+ 1 - 0
创维盒子/双子星云手机/zh-Hans.lproj/Localizable.strings

@@ -470,6 +470,7 @@
 "uploadFile_title_left"   = "上传文件";
 "uploadFile_title_right"   = "本地文件将保存到【云机/外挂磁盘】";
 "share_rule_but_title"   = "了解更多分享规则";
+"share_rule_title"   = "分享规则";
 "edit_common"      = "编辑";
 "share_del_record"   = "删除记录";
 "cancel_share_title"   = "取消分享";