2016-12-06 127 views
1

我有一個服務返回一個圖像流在UI中顯示。如何爲此設置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類型發送。

例如,

PNG:image/png GIF:image/gif

您還必須檢查圖像是否是在瀏覽器兼容的格式,而發送。檢查這個wiki page

如果不是,則用戶正在使用其他應用程序來處理圖像。所以,你將不得不使用application/和文件類型。我強烈反對使用這種方式,因爲可能只有少數選定類型的圖像。

請將此轉換爲完整的MIME類型。 (Link

請注意:對於jpg格式,應該是jpeg

此外,正如haim770所述,您可以使用System.Web.MimeMapping.GetMimeMapping這將返回所需的MIME類型,適用於所有類型的文件,而不僅僅是圖像。