程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> IE保存圖片時出現“800700de錯誤”的解決方法

IE保存圖片時出現“800700de錯誤”的解決方法

編輯:關於ASP.NET

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();
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved