Analytics

2012年7月12日 星期四

[ASP.NET]解決 下載檔案時發生"無法開啟這個網際網路網站。可能是因為要求的網站無法使用或找不到。請稍後再試(Occurred while downloading files to solve the & quot; unable to open this Internet site. May be due to the requirements of the site is not available or can not be found. Please try again later)


問題
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
}

沒有留言:

熱門文章