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

}
相关推荐
ljs64827395110 小时前
Linux 网络常用命令与端口基础详解
linux·网络·php
Ai拆代码的曹操10 小时前
TCP 握手丢包分析:客户端连接超时、服务端无日志的场景排查实践
网络·网络协议·tcp/ip
白帽小阳10 小时前
Typora插件开发指南:打造专属IDE式写作环境
c语言·网络·python·网络安全·github·pygame·护网行动
网络小白不怕黑10 小时前
13.SSH服务相关配置
服务器·网络·ssh
科技侃谈11 小时前
曹操充电:以“蚂蚁站“模式破局县域补能,让下沉市场充电网络更轻、更快、更可持续
网络
铅笔侠_小龙虾11 小时前
Rust 学习(8)-切片类型
学习·rust·c#
makise-11 小时前
剑星2026最新版免费下载+修改器
网络·游戏
Bruce_Liuxiaowei11 小时前
一次内网横向移动实战:从一个 5900 端口到穿越防火墙
运维·网络·安全
爱吃大芒果11 小时前
商用门店应用开发:AbilityKit Kiosk 锁屏模式拆解
网络·华为·harmonyos
云计算-Security12 小时前
同(异)主机 Linux NAT 最佳实践
linux·服务器·网络