mvc開啟gzip壓縮示例分享
更新時間:2014年03月12日 11:11:24 作者:
這篇文章主要介紹了mvc開啟gzip壓縮示例,需要的朋友可以參考下
復制代碼 代碼如下:
using System.IO;
using System.IO.Compression;
using System.Web;
using System.Web.Mvc;
public class CompressAttribute : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
//如果出現(xiàn)錯誤,則不進行壓縮,否則頁面會出現(xiàn)亂碼,而不是報錯的黃頁
if (filterContext.Exception != null)
return;
HttpResponseBase Response = filterContext.HttpContext.Response as HttpResponseBase;
//判斷IIS或者其他承載設(shè)備是是否啟用了GZip或DeflateStream
if (Response.Filter is GZipStream || Response.Filter is DeflateStream)
return;
//開始進入壓縮環(huán)節(jié)
string AcceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
if (!string.IsNullOrEmpty(AcceptEncoding) && (AcceptEncoding.Contains("gzip") || AcceptEncoding.Contains("deflate")))
{
if (AcceptEncoding.Contains("gzip"))
{
Response.Filter = new GZipStream(Response.Filter, CompressionMode.Compress);
Response.Headers.Remove("Content-Encoding");
Response.AppendHeader("Content-Encoding", "gzip");
}
else
{
Response.Filter = new DeflateStream(Response.Filter, CompressionMode.Compress);
Response.Headers.Remove("Content-Encoding");
Response.AppendHeader("Content-Encoding", "deflate");
}
}
}
}
相關(guān)文章
詳解C#如何使用重載方法實現(xiàn)不同類型數(shù)據(jù)的計算
這篇文章主要為大家詳細介紹了C#如何使用重載方法實現(xiàn)不同類型數(shù)據(jù)的計算,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-02-02
Asp.Net(C#)使用oleDbConnection 連接Excel的方法
ADO.NET采用不同的Connection對象連接數(shù)據(jù)庫。這篇文章主要介紹了Asp.Net(C#)使用oleDbConnection 連接Excel的方法,非常具有實用價值,需要的朋友可以參考下2018-11-11
C#三種判斷數(shù)據(jù)庫中取出的字段值是否為空(NULL) 的方法
最近操作數(shù)據(jù)庫,需要判斷返回的字段值是否為空,在網(wǎng)上收集了3種方法供大家參考2013-04-04
C#中將dateTimePicker初始值設(shè)置為空
本文主要介紹了C#中將dateTimePicker初始值設(shè)置為空,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02

