zoukankan      html  css  js  c++  java
  • asp.net zip 压缩传输

    在实际生产中,比如使用xml json 等传输大量数据的时候,有时候会出现等待时间过长,这里分享一个压缩传输的方法

    首先到网上去下载一个 ICSharpCode.SharpZipLib.dll 的dll (百度和google)都是可以搜索到的

      这里本人是在传输xml 格式文本的时候感觉网速稍慢,所以找到了此优化的方法

     这里把代码分享出来

    这里是压缩数据的方法

     using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.Services;
    using PNXSoft.Framework.Configuration;
    using PNXSoft.Framework.DataAccess_MySql;
    using PNXSoft.Framework.Constants;
    using System.Data;
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;
    using ICSharpCode.SharpZipLib.Zip;
    
     /// <summary>
    
        /// 压缩数据集
    
        /// </summary>
    
        /// <param name="ds"></param>
    
        /// <returns></returns>
    
        public static byte[] CompressDS(DataSet ds)
        {
    
            MemoryStream ms = new MemoryStream();
    
            ZipOutputStream zos = new ZipOutputStream(ms);
    
            zos.PutNextEntry(new ZipEntry(ds.DataSetName));
    
            BinaryFormatter bf = new BinaryFormatter();
    
            //DataSetSurrogate dss = new DataSetSurrogate(ds);
    
            bf.Serialize(zos, ds);
    
            zos.CloseEntry();
    
            zos.Close();
    
            byte[] ret = ms.ToArray();
    
            ms.Close();
    
            return ret;
    
        }
    
    
    
    
    解压数据的方法
    
    
    
    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Data;
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;
    using ICSharpCode.SharpZipLib.Zip;
    
    /// <summary>
    ///DSCompress 的摘要说明
    /// </summary>
    public class DSCompress
    {
        public DSCompress()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }
    
        
          
        /// <summary>
        /// 解压数据集
        /// </summary>
        /// <param name="byt"></param>
        /// <returns></returns>
        public static DataSet DecompressDS(byte[] byt)
        {
    
            MemoryStream ms = new MemoryStream(byt);
    
            BinaryFormatter bf = new BinaryFormatter();
            
            ZipInputStream zis = new ZipInputStream(ms);
    
            zis.GetNextEntry();
    
            DataSet ds = (DataSet)bf.Deserialize(zis);
    
            zis.Close();
    
            ms.Close();
    
            return ds;
    
        } 
    
    }

    代码没什么难度,希望可以帮助到需要的人

  • 相关阅读:
    海选女主角
    发工资咯:)
    绝对值排序
    数列有序!
    母牛的故事
    一文看懂外汇风险准备金率调整为 20%的含义
    1080i减少带宽
    为什么要采用隔行扫描?
    720P、1080P、4K是什么意思?
    VBR一次編碼 v.s 二次編碼(VBR 1-pass vs 2-pass)
  • 原文地址:https://www.cnblogs.com/yiliuyang/p/4253642.html
Copyright © 2011-2022 走看看