gpt4 book ai didi

ios - 从 Assets Library URL iOS 获取 MIME 类型

转载 作者:行者123 更新时间:2023-11-29 12:21:55 25 4
gpt4 key购买 nike

我正在尝试上传图片,但在发布请求中我需要传递“Content-Type”,即我从 iOS 照片库中选择的图片的 mime 类型,但是当我试图获取mime 类型它即将到来 nil

这是过程:-

注意: imgProfileURL 的类型是NSString

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
imgProfileURL=[NSString stringWithFormat:@"%@",[info objectForKey:@"UIImagePickerControllerReferenceURL"]];

}

imgProfileURL 现在包含:-

assets-library://asset/asset.JPG?id=B6C0A21C-07C3-493D-8B44-3BA4C9981C25&ext=JPG

现在,我调用下面的函数来获取 MIME 类型并传递 imgProfileURL 的值

- (NSString *)mimeTypeForPath:(NSString *)path
{
// get a mime type for an extension using MobileCoreServices.framework



CFStringRef extension = (__bridge CFStringRef)[path pathExtension];
CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, extension, NULL);
assert(UTI != NULL);

NSString *mimetype = CFBridgingRelease(UTTypeCopyPreferredTagWithClass(UTI, kUTTagClassMIMEType)); //it is NULL
assert(mimetype != NULL); // Crashing here

CFRelease(UTI);

return mimetype;
}

mimetype 在这里变为 NULL。

我已经回答了这个问题,但没有帮助我:- LINK

最佳答案

这是我获取图像名称、类型和大小所做的:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *imgSelected = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
NSURL *fileURL = [info valueForKey:UIImagePickerControllerReferenceURL];

ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
{
ALAssetRepresentation *representation = [myasset defaultRepresentation];
NSString *fileName = [representation filename];
NSString *fileSize = [NSString stringWithFormat:@"%lld",[representation size]];
NSString *MIMEType = (__bridge_transfer NSString*)UTTypeCopyPreferredTagWithClass
((__bridge CFStringRef)[representation UTI], kUTTagClassMIMEType);

NSLog(@"file name : %@",fileName);
NSLog(@"file size : %@",fileSize);
NSLog(@"file type : %@",MIMEType);
};

ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init] ;
[assetslibrary assetForURL:fileURL resultBlock:resultblock failureBlock:nil];
}

关于ios - 从 Assets Library URL iOS 获取 MIME 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30371283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com