获取没有扩展名的文件mime-type

时间:2014-04-28 15:48:38

标签: ios titanium mime-types

我正在使用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中的文件扩展名

由于

1 个答案:

答案 0 :(得分:-1)

Ti.Filesystem.File没有MimeType属性,也许您正在考虑Ti.Blob

我已成功使用此代码获取某些数据的mimeType,类似于您已有的数据!

var file = Ti.Filesystem.getFile( filePath );
var blob = file.read();
var mimeType = blob.getMimeType();

查看TiBlob.mMimetypes.m这可能无法解决问题,但我似乎记得在此方面取得了成功。