IE中開啟網站圖片,右鍵-映像另村為的時候-發生如下錯誤
---------------------------Windows Internet Explorer---------------------------由於出現錯誤 800700de 而導致此項操作無法完成。---------------------------確定 協助 ---------------------------
我在伺服器上分別用兩種方式輸出圖片都有如上錯誤
第一種方式為:Response.TransmitFile,第二種方式為資料庫讀取img欄位後用Response.BinaryWrite
最終找到的了問題所在,是因為http頭缺少Content-type資訊,而不知道,導致錯誤發生,而且我在其它網站也碰到過類似問題。因為大部分圖片為資料庫中讀取,而且曆史原因導致他們都沒有檔案名稱也不知道檔案類型,所以需要自己判斷一下,可以根據檔案頭來判別類型,具體方式如下:
首先從資料庫中讀取img欄位資料,儲存到byte[]中,步驟略去,假設byte[] buffer;
然後寫一段類似如下的代碼
string strFlag = buffer[0].ToString() + buffer[1].ToString(); string strFileType = "image/{0}"; switch (strFlag) ...{ case "255216": strFileType = string.Format(strFileType, "jpg"); break; case "7173": strFileType = string.Format(strFileType, "gif"); break; case "6677": strFileType = string.Format(strFileType, "bmp"); break; case "13780": strFileType = string.Format(strFileType, "png"); break; default: strFileType = string.Empty; break; } if (!string.IsNullOrEmpty(strFileType)) Response.AddHeader("Content-type", strFileType); Response.BinaryWrite(buffer); Response.End();