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;

    } 

}

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

时间: 2024-10-27 11:49:33

asp.net zip 压缩传输的相关文章

ASP.NET打包生成zip压缩文件

using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; using Microsoft.Win32; using

asp.net 文件压缩zip下载

 今天分享下昨天做的一个东西 asp.net 的文件  zip 批量下载,首先你需要去 到http://dotnetzip.codeplex.com这个站点下载zip 的包,在里面找到 Ionic.Zip.dll  引用到你的项目中去 /// <summary> /// 批量zip下载 /// </summary> /// <param name="Listimg">这里Listimg 是一个数组类型</param> public voi

Xceed Zip压缩和解压控件Xceed Zip Compression Library

Xceed Zip Compression Library 是一个高性能的 Zip 和 Unzip 数据压缩ActiveX控件.通过它,可以创建和操作与Zip文件,也能在内存中直接压缩/解压数据.它设计提供高度灵活性,并且使用快速的多线程 zip 压缩引擎. 具体功能: ActiveX 技术 ATL 3.0编写,简单且独立的 COM 对象和 ActiveX 控件. 无须外部的压缩动态链接库, MFC DLL 或运行库等. 同时有单线程 (STA) 和多线程 (MTA) 模型设计. 不必将组件置于

Android之Gzip/Zip压缩

前言: 做过Android网络开发的都知道,在网络传输中我们一般都会开启GZIP压缩,但是出于刨根问底的天性仅仅知道如何开启就不能满足俺的好奇心的,所以想着写个demo测试一下比较常用的两个数据压缩方式,GZIP/ZIP压缩. 首先认识一下GZIP压缩 GZIP是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量.GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压

web Service dataset压缩传输

服务端: using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.IO.Compression; using System.Data;using CompressDataSet; [WebServ

Apache 开启压缩传输

在 /etc/httpd/conf/httpd.conf 中添加如下配置: # Enable gzip - by Jerryhuang # <IfModule mod_deflate.c> SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip

2018-1-6 4周5次课 zip压缩、tar打包

6.5 zip压缩工具 ★zip支持压缩目录 前期准备: [[email protected] d6z]# tree aminglinux/ aminglinux/ ├── 2 │   └── 2.txt └── aming2 ├── 2 │   └── 2.txt ├── aming1 │   ├── 2 │   │   └── 2.txt │   └── aminglinux │       └── 2 │           └── 2.txt └── ls2 8 directories,

Linux学习笔记(二十)文件压缩 zip压缩、tar打包、打包、解包

一.zip压缩 首先安装zip与unzipyum install -y zip/unzip zip 1.txt.zip 1.txt 压缩文件1.txt,压缩文件名称为1.txt.zip zip -r 123.zip 123/ 压缩文件夹123/ 指定名称123.zip unzip 1.txt.zip zip压缩文件并不会删除源文件,解压时会提示是否覆盖已存在的文件 unzip 123.zip -d /root/456/ 解压123.zip文件到/root/456/ 目录下 unzip -l 12

上传 Zip 压缩档并即时解压缩文件保存到 Blob

Upload Zip file and unpack on the fly to Windows Azure Blob Upload Zip file and unpack on the fly to Windows Azure Blob 为求方便(懒惰的做法XD),我直接借用小朱在 边做边学 Windows Azure 应用程序开发基础 Part 2:开发 BLOB.Table 与 Queue 应用程序 一文中的例子来改写. 如图中红色框框:其中最大的不同是使用 DotNetZip 这个组件以