Asp.Net Core服务端处理请求过来的压缩格式

之前是直接传没有经过压缩的文件字节,有时文件过大的话,可能占宽带就多,宽带流量都是钱。后来有个想法,在客户端把文件进行压缩,把压缩的文件流发给服务端进行解压。

1,先修改项目中Startup.cs文件中ConfigureServices()方法中的代码:

复制代码
//注册压缩响应
services.AddResponseCompression((options) =>
{
	options.EnableForHttps = true;
	options.Providers.Add<Microsoft.AspNetCore.ResponseCompression.GzipCompressionProvider>();
});

2 ,先修改项目中Startup.cs文件中Configure(IApplicationBuilder app, IWebHostEnvironment env)方法中的代码:

复制代码
//使用gzip压缩
app.UseResponseCompression();

3,在控制层处理传过来压缩文件进行处理。

复制代码
var formFiles = (Microsoft.AspNetCore.Http.FormFileCollection)formCollection.Files;
byte[] bytes = new byte[] { };
foreach (var item in formFiles)
{
	bytes = DeZip(item.OpenReadStream());
}
string html2 = System.Text.Encoding.UTF8.GetString(bytes);


public static byte[] DeZip(Stream stream)
{
	byte[] buffer2 = new byte[1024];
	int length;

	using (var gz = new GZipStream(stream, CompressionMode.Decompress))
	{
		using (MemoryStream msTemp = new MemoryStream())
		{
			while ((length = gz.Read(buffer2, 0, buffer2.Length)) != 0)
			{
				msTemp.Write(buffer2, 0, length);
			}

			return msTemp.ToArray();
		}
	}

}
相关推荐
沐浴露z11 分钟前
一张思维导图理清【操作系统】
java·linux·网络
汤愈韬2 小时前
vlan间通信之vlanif虚接口、vlan聚合
网络·网络安全
zbtlink2 小时前
海内外路由器差异全解析:从技术博弈到选购攻略
网络·智能路由器
你好,赵志伟2 小时前
Reactor反应堆
网络·c++
2501_941142932 小时前
基于区块链的数字身份管理:探索安全与隐私的未来
网络·数据库·人工智能
TO_ZRG2 小时前
Base64原理、Http Header
网络·网络协议·http
u***27612 小时前
电脑可以连接wifi,但是连接后仍然显示没有网络
网络·电脑·php
Claudedy2 小时前
Linux 网络代理指南:解决下载慢、访问受限的开发痛点
linux·运维·网络·代理·proxy代理
BuHuaX2 小时前
Unity_AssetBundle相关
unity·c#·游戏引擎·游戏策划
AI绘画小332 小时前
【网络安全】IP 核心技能:获取、伪造、隐藏与挖掘
网络·tcp/ip·安全·web安全·网络安全