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();