我正在使用Titanium HTTP Client将jpg下载到applicationDataDirectory中。
我将文件名保存为URL的md5哈希值,以便能够通过URL进行简单缓存。
但是如果我保存没有扩展名的文件,例如。就像我运行时的sf98isdi8j3k34k3kj34k没有.jpg
var file = Ti.Filesystem.getFile( filePath );
var mimeType = file.blob.getMimeType();
返回"application/octet-stream"
这是因为Mimetypes.m
包含以下代码
+ (NSString *)mimeTypeForExtension:(NSString *)ext
{
[Mimetypes initialize];
NSString *result=[mimeTypeFromExtensionDict objectForKey:[[ext pathExtension] lowercaseString]];
if (result == nil){
result = @"application/octet-stream";
}
return result;
}
它非常依赖于扩展,因此您可以更改文件扩展名并导致问题。
我如何根据文件的原始数据检查mime类型,而不是钛专用iOS中的文件扩展名
由于
答案 0 :(得分:-1)
Ti.Filesystem.File没有MimeType属性,也许您正在考虑Ti.Blob?
我已成功使用此代码获取某些数据的mimeType,类似于您已有的数据!
var file = Ti.Filesystem.getFile( filePath );
var blob = file.read();
var mimeType = blob.getMimeType();
查看TiBlob.m和Mimetypes.m这可能无法解决问题,但我似乎记得在此方面取得了成功。