Determine MIME Type of NSData Loaded From a File

前端 未结 2 1398
天命终不由人
天命终不由人 2020-12-02 21:10

For various reasons I am intercepting http requests and loading content from files in my app\'s document directory using NSURLProtocol. Part of the process involves loading

相关标签:
2条回答
  • 2020-12-02 21:44

    Perhaps you could download the file and use this to get the file's MIME type.

    + (NSString*) mimeTypeForFileAtPath: (NSString *) path {
        if (![[NSFileManager defaultManager] fileExistsAtPath:path]) {
            return nil;
        }
        // Borrowed from https://stackoverflow.com/questions/5996797/determine-mime-type-of-nsdata-loaded-from-a-file
        // itself, derived from  https://stackoverflow.com/questions/2439020/wheres-the-iphone-mime-type-database
        CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)[path pathExtension], NULL);
        CFStringRef mimeType = UTTypeCopyPreferredTagWithClass (UTI, kUTTagClassMIMEType);
        CFRelease(UTI);
        if (!mimeType) {
            return @"application/octet-stream";
        }
        return [NSMakeCollectable((NSString *)mimeType) autorelease];
    }
    
    0 讨论(0)
  • 2020-12-02 21:58

    can you not see anything in the HTTP accept headers, if you are intercepting requests i would expect the accept header to be set to the mime of the expected type in most cases

    0 讨论(0)
提交回复
热议问题