diff --git a/ios/Classes/core/PMManager.m b/ios/Classes/core/PMManager.m index 504bb34a..7cc811eb 100644 --- a/ios/Classes/core/PMManager.m +++ b/ios/Classes/core/PMManager.m @@ -1175,14 +1175,10 @@ - (void)saveImage:(NSData *)data [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ - PHAssetCreationRequest *request = - [PHAssetCreationRequest creationRequestForAsset]; - PHAssetResourceCreationOptions *options = - [PHAssetResourceCreationOptions new]; + PHAssetCreationRequest *request = [PHAssetCreationRequest creationRequestForAsset]; + PHAssetResourceCreationOptions *options = [PHAssetResourceCreationOptions new]; [options setOriginalFilename:filename]; - [request addResourceWithType:PHAssetResourceTypePhoto - data:data - options:options]; + [request addResourceWithType:PHAssetResourceTypePhoto data:data options:options]; assetId = request.placeholderForCreatedAsset.localIdentifier; } completionHandler:^(BOOL success, NSError *error) { @@ -1200,20 +1196,24 @@ - (void)saveImageWithPath:(NSString *)path filename:(NSString *)filename desc:(NSString *)desc block:(AssetBlockResult)block { + NSFileManager *manager = [NSFileManager defaultManager]; + if (![manager fileExistsAtPath:path]) { + block(nil, [NSString stringWithFormat:@"File does not exist at %@", path]); + return; + } + [PMLogUtils.sharedInstance info:[NSString stringWithFormat:@"save image with path: %@ filename:%@, desc: %@", path, filename, desc]]; + NSURL *fileURL = [NSURL fileURLWithPath:path]; __block NSString *assetId = nil; [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ - PHAssetCreationRequest *request = - [PHAssetCreationRequest creationRequestForAsset]; - PHAssetResourceCreationOptions *options = - [PHAssetResourceCreationOptions new]; - [options setOriginalFilename:filename]; - NSData *data = [NSData dataWithContentsOfFile:path]; - [request addResourceWithType:PHAssetResourceTypePhoto - data:data - options:options]; + PHAssetCreationRequest *request = [PHAssetCreationRequest creationRequestForAsset]; + PHAssetResourceCreationOptions *options = [PHAssetResourceCreationOptions new]; + if (filename) { + [options setOriginalFilename:filename]; + } + [request addResourceWithType:PHAssetResourceTypePhoto fileURL:fileURL options:options]; assetId = request.placeholderForCreatedAsset.localIdentifier; } completionHandler:^(BOOL success, NSError *error) { @@ -1230,14 +1230,23 @@ - (void)saveVideo:(NSString *)path filename:(NSString *)filename desc:(NSString *)desc block:(AssetBlockResult)block { + NSFileManager *manager = [NSFileManager defaultManager]; + if (![manager fileExistsAtPath:path]) { + block(nil, [NSString stringWithFormat:@"File does not exist at %@", path]); + return; + } + [PMLogUtils.sharedInstance info:[NSString stringWithFormat:@"save video with path: %@, filename: %@, desc %@", path, filename, desc]]; + NSURL *fileURL = [NSURL fileURLWithPath:path]; __block NSString *assetId = nil; [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ PHAssetCreationRequest *request = [PHAssetCreationRequest creationRequestForAsset]; PHAssetResourceCreationOptions *options = [PHAssetResourceCreationOptions new]; - [options setOriginalFilename:filename]; + if (filename) { + [options setOriginalFilename:filename]; + } [request addResourceWithType:PHAssetResourceTypeVideo fileURL:fileURL options:options]; assetId = request.placeholderForCreatedAsset.localIdentifier; }