問題
Response資料到client時,發生錯誤訊息如下:
無法開啟這個網際網路網站。可能是因為要求的網站無法使用或找不到。請稍後再試。
但是在firefox,chrome,IE9以上版本都不會有此問題,因此找了相關文章,指出是IE8的BUG,所以為了避免此問題發生,請將Cache開啟
解決方法
public static void ResponseXls(HttpResponse response, Byte[] binaryData, string filename,ContentType type)
{
response.Clear();
//ie8底下會有問題,所以要可以cache,其他瀏覽器就不會
//response.Cache.SetCacheability(HttpCacheability.NoCache); response.Expires = 0;
response.Buffer = true;
response.HeaderEncoding = System.Text.Encoding.Default;
response.ContentType = GetTypeDescript(type);
response.AddHeader("content-disposition", "attachment;filename=" + filename);
response.AddHeader("Content-length", binaryData.Length.ToString());
response.BinaryWrite(binaryData);
response.End();
}
private static string GetTypeDescript(ContentType type)
{
switch (type)
{
case ContentType.xls:
return "application/vnd.xls";
default:
return "application/octet-stream";
}
}
public enum ContentType
{
xls
}
沒有留言:
張貼留言