2016-12-06 4 views
1

У меня есть служба, возвращающая поток изображений, который будет отображаться в пользовательском интерфейсе. Как установить значение ContentType для этого, поскольку я не знаю, каким будет тип изображения? Это может быть изображение/JPEG, изображение/PNG и т.д.Как установить ContentType для неизвестных расширений изображений?

fileContent.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("inline") 
        { 
         FileName = fileName 
        }; 
        fileContent.Content.Headers.ContentType = new MediaTypeHeaderValue(??); 
+0

Вы можете использовать 'System.Web.MimeMapping.GetMimeMapping (fileName)'. См. Https://msdn.microsoft.com/en-us/library/system.web.mimemapping.getmimemapping.aspx – haim770

+0

Возможный дубликат [Получить тип MIME с расширением имени файла] (http://stackoverflow.com/questions/1029740/get-mime-type-from-filename-extension) –

+1

@ haim770 - имя файла недоступно, так как служба возвращает только поток байтов – user5663970

ответ

0

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

Если вы не хотите делать это, просто добавьте тип файла в image/ и отправьте его как mime-type.

пример,

PNG: image/png GIF: image/gif

Вы также должны проверить, является ли изображение в формат, совместимый браузер во время отправки. проверьте это wiki page.

Если это не так, пользователь использует другое приложение для обработки изображения. Таким образом, вам нужно будет использовать application/ и тип файла. Я решительно рекомендую использовать это, потому что может быть только несколько выбранных типов изображений.

см. Это для полных MIME-типов. (Link)

Обращаем ваше внимание, что формат jpg должен быть jpeg.

Также, как упоминалось haim770, вы можете использовать System.Web.MimeMapping.GetMimeMapping, который возвратит требуемый тип mime для всех типов файлов, а не только изображений.

 Смежные вопросы

  • Нет связанных вопросов^_^