현재 응용 프로그램에서는 서버에서 파일을 거의 다운로드하지 않고 로컬로 저장합니다.확장명이없는 파일의 확장자 확인
파일 확장명에 따라 적절한보기로 파일을로드 중입니다.
예 :
- 파일 확장자 : MOV, 3GP, M4A 등 => 미디어 플레이어에서 디스플레이.
- 확장자 : rtf, pptx, numbers 등 = UIWebView에 표시됩니다.
- 파일 확장자 : gif, png, xbm 등, => UIImageView에 표시됩니다.
문제 : 다운로드 한 파일 중 일부에 확장명이 없을 수 있습니다.
내가 찾은 한 가지 접근법은 connectionDidFinishLoading이 응답에서 MIMEType을 얻고 그로부터 파일 확장명을 가져 오는 것입니다. 나도 같은를 들어, 이하의 코드 사용 :
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
CFStringRef mimeType = (__bridge CFStringRef)[_respo MIMEType];
CFStringRef uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mimeType, NULL);
CFStringRef extension = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassFilenameExtension);
NSString *fileName = [NSString stringWithFormat:@"%@.%@", [[_respo suggestedFilename] stringByDeletingPathExtension], (__bridge NSString *)extension];
[[NSFileManager defaultManager] createFileAtPath:[[self docsDir] stringByAppendingPathComponent:[NSString stringWithFormat:@"Downloads/%@", fileName]] contents:_downloadedData attributes:nil];
}
지금 내 질문은 :
확장하지 않고 파일에 대한 파일 확장자를 식별하는 다른 방법이 있나요이있는 NSData 객체에서 말을?
파일 확장명을 확인하는 대신 적절한보기로 파일을 표시하는 다른 방법이 있습니까?
좋습니다.
모든 파일이'QLPreviewController'를 사용하는 것이 가장 쉽습니다. 그런 다음 파일 확장명 및 파일 형식에 대해 작업 할 필요가 없으며 사용자는 모든 파일에 대해 일관된 사용자 환경을 확보 할 수 있습니다. – rmaddy