由於一些奇怪的原因,一個五年的內部asp.net網絡應用程序即通過IE6使用突然出現問題,即使沒有代碼的變化。某些用戶不會看到正在流式傳輸到Web瀏覽器的某些圖像。如何流式傳輸字節數組圖像?
我不知道爲什麼這個突然開始發生或者原因是什麼 - 不過作爲搜索的一部分,我正在考慮用於流式傳輸圖像的代碼是否存在缺陷。
圖像保存在內存中是一個字節數組,然後使用以下代碼進行流式傳輸。這是流式傳回圖像的最佳方式嗎?
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
// Work out file type
switch(Path.GetExtension(imageFilename).ToLower())
{
case ".jpg":
case ".jpeg":
Response.ContentType = "image/jpeg";
break;
case ".gif":
Response.ContentType = "image/gif";
break;
default:
Response.ContentType = "binary/octet-stream";
break;
}
Response.AddHeader("Content-Length", imageBytes.Length.ToString());
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.BinaryWrite(imageBytes);
Response.End();
不是在頁面中顯示圖像,而是顯示紅色十字。這隻發生在頁面上顯示的動態生成的圖像上,而不是靜態鏈接的圖像。
如果我嘗試在自己的窗口中打開圖像,我會看到圖像或一大堆gobbledygook文本(我猜這意味着MIME類型沒有被瀏覽器設置/拾取)
乍一看似乎是合適的,但你能概述一下你的客戶有哪些「問題」?這是全部圖像還是僅僅是一些?隨機?他們是下載這些圖像還是嵌入父頁? – Mantorok 2011-06-06 12:44:39
當圖像沒有出現時,你會得到什麼樣的位置?空白,紅-X等? – 2011-06-06 12:58:34
@Mantorok @Damien_The_Unbeliever我已經用澄清更新了原始問題。 – 2011-06-06 13:56:13