当前位置:编程学习 > C#/ASP.NET >>

如何转换类型为stream以做到web页面的gzip

以下代码在csdn下载http://download.csdn.net/download/sdjxcolin/802865
该代码能被对网页及网页中的js,css,jpg等文件的gzip压缩
但我现在不想对网页及所有文件进行gzip压缩

问:1.如何只针对网页中的js文件进行gzip
2.如何针对aspx文件进行gzip
求均用httphandler实现方法


using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.IO;
using System.IO.Compression;

namespace Compression
{
    public class CompressionModule : IHttpModule
    {
        void IHttpModule.Dispose()
        { }

        void IHttpModule.Init(HttpApplication context)
        {
            context.PreRequestHandlerExecute += new EventHandler(context_PostReleaseRequestState);
        }

        void context_PostReleaseRequestState(object sender, EventArgs e)
        {
            HttpApplication app = (HttpApplication)sender;
            if (app.Context.CurrentHandler is System.Web.UI.Page && app.Request["HTTP_X_MICROSOFTAJAX"] == null)
            {
                if (IsEncodingAccepted(GZIP))
                {
                    app.Response.Filter = new GZipStream(app.Response.Filter, CompressionMode.Compress);
                    SetEncoding(GZIP);
                }
                else if (IsEncodingAccepted(DEFLATE))
                {
                    app.Response.Filter = new DeflateStream(app.Response.Filter, CompressionMode.Compress);
                    SetEncoding(DEFLATE);
                }
            }
        }

        private const string GZIP = "gzip";
        private const string DEFLATE = "deflate";

        private static bool IsEncodingAccepted(string encoding)
        {
            HttpContext context = HttpContext.Current;
            return context.Request.Headers["Accept-encoding"] != null && context.Request.Headers["Accept-encoding"].Contains(encoding);
        }

        private static void SetEncoding(string encoding)
        {
            HttpContext.Current.Response.AppendHeader("Content-encoding", encoding);
        }
    }
}
--------------------编程问答-------------------- 不懂,帮顶 --------------------编程问答-------------------- http://topic.csdn.net/u/20110914/14/be9b1dd6-6d57-473c-a5d8-bbb1d787f689.html
http://topic.csdn.net/u/20110915/10/c7baa864-dd67-4bc0-a7b1-fa6a291c3e4f.html?seed=1310372528&r=75542580

这两个贴也是我开的,就是没人能解决!!!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,