IOS猜测mime类型
我正在处理的一个react native项目使用了一个名为react native background upload的包 其中一个本机模块使用这行代码来确定mimetype:IOS猜测mime类型,ios,react-native,mime-types,Ios,React Native,Mime Types,我正在处理的一个react native项目使用了一个名为react native background upload的包 其中一个本机模块使用这行代码来确定mimetype: - (NSString *)guessMIMETypeFromFileName: (NSString *)fileName { CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge C
- (NSString *)guessMIMETypeFromFileName: (NSString *)fileName {
CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)[fileName pathExtension], NULL);
CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass(UTI, kUTTagClassMIMEType);
CFRelease(UTI);
if (!MIMEType) {
return @"application/octet-stream";
}
return (__bridge NSString *)(MIMEType);
}
输入文件名值的输入为:
资产-library://asset/asset.JPG?id=A7F5245E-C08E-4FB5-B7BE-0AB689B16DC5&ext=JPG
然而,这总是返回“应用程序/八位字节流”。它应该返回“image/jpeg”
我想这个猜测类型FromFileName功能被破坏了
我不知道本机IOS代码可以修复此问题。尝试将
[fileName pathExtension]
替换为:
[[fileName pathExtension] componentsSeparatedByString:@"?"][0]
我认为你最好把问号和它背后的一切都从地图上去掉filename@dentemm不知道如何在objc中实现这一点。在将JavaScript代码发送到本机模块之前,是否有可能更改其文件名?否则,我将提供一个objc片段来解析url
assets-library://asset/asset.JPG?id=A7F5245E-C08E-4FB5-B7BE-0AB689B16DC5&ext=JPG
不是文件名。这是一个URL。