Тип файла из NSURL

Привет, я хочу прочитать тип файла из загруженного файла в iOS, у которого нет расширения.

Eg: http://somelink/2a3bc

Это действительный файл PDF. Когда я загружаю, он загружается как поток NSData по URL-адресу (NSURL). если я переименую его в 2a3bc.pdf, его можно просмотреть с помощью UIDocumentInteractionController, но когда я открою URL-адрес без расширения, он не распознает его как действительный файл. Его UTI становится общедоступным.

Есть ли способ прочитать тип файла из NSData, переименовать файл в соответствии с этим и открыть его с помощью UIDocumentInteractionController.

С уважением, Нанду Ахмед


person user3488871    schedule 02.04.2014    source источник


Ответы (1)


В вашей задаче загрузки есть ссылка на файл NSURLResponse *response, который был получен как часть загрузки. Он содержит MIMEType, который был установлен для загрузки. Вы должны использовать это, чтобы определить тип файла.

Технически вы можете прочитать первые несколько байтов данных в загруженном файле, но вам потребуется достаточно много кода для сравнения и идентификации всех последовательностей байтов...

person Wain    schedule 02.04.2014
comment
Спасибо, но в моем случае ответ nil. - person user3488871; 02.04.2014
comment
Я не получаю MIME-тип в ответ <NSHTTPURLResponse: 0xc5f8260> { URL: https://abc/def/v1.1/files/filename } { status code: 200, headers { Connection = "Keep-Alive"; "Content-Length" = 136247; "Content-Type" = "application/zip"; Date = "Wed, 02 Apr 2014 10:43:26 GMT"; "Keep-Alive" = "timeout=120, max=500"; } } - person user3488871; 02.04.2014
comment
Итак, он у вас есть, и он говорит, что тип данных zip. Итак, если все приходят как zip, вам нужно получить некоторую другую информацию с сервера (например, хорошее имя файла) или проанализировать байты файла (вам нужно будет получить исходную информацию для соответствия байтам). - person Wain; 02.04.2014