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;
    
        } 
    
    }

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

  • 相关阅读:
    IaaS、PaaS、SaaS
    hyper-V 配置
    解决linux下创建用户时出现Creating mailbox file: File exists
    iframe层级关系调用
    js,jq新增元素 ,on绑定事件无效
    js中!和!!的区别与用法
    form表单禁止button 提交
    Thinkphp5终端创建控制器和模型
    TP5的目录常量和路径
    sublime安装package controlller
  • 原文地址:https://www.cnblogs.com/yiliuyang/p/4253642.html
Copyright © 2011-2022 走看看