IE 右鍵「圖片另存為」彈出 800700de,原因是 HTTP 回應缺少 Content-Type 標頭,IE 無法辨識檔案類型而拒絕儲存。
Response.TransmitFile 未設定 Content-Type。Response.BinaryWrite 輸出資料庫 BLOB 未設定 Content-Type。byte[] buffer = ...; // 來自資料庫/檔案
string flag = buffer[0].ToString() + buffer[1].ToString();
string mime = "image/{0}";
switch (flag) {
case "255216": mime = string.Format(mime, "jpeg"); break; // FF D8
case "7173": mime = string.Format(mime, "gif"); break; // 47 49
case "6677": mime = string.Format(mime, "bmp"); break; // 42 4D
case "13780": mime = string.Format(mime, "png"); break; // 89 50
default: mime = string.Empty; break;
}
if (!string.IsNullOrEmpty(mime))
Response.AddHeader("Content-Type", mime);
Response.BinaryWrite(buffer);
Response.End();
Content-Disposition: inline; filename="xxx.jpg" 引導預設檔名。