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

}
相关推荐
振浩微433射频芯片13 小时前
433MHz在智能家居中的应用大全(二):智能安防篇——安全不容“信号死角”
网络·单片机·嵌入式硬件·物联网·智能家居
游乐码15 小时前
c#泛型约束
开发语言·c#
fengfuyao98515 小时前
基于STM32的4轴步进电机加减速控制工程源码(梯形加减速算法)
网络·stm32·算法
hoiii18715 小时前
C# 基于 LumiSoft 实现 SIP 客户端方案
前端·c#
瀚高PG实验室16 小时前
审计策略修改
网络·数据库·瀚高数据库
forAllforMe17 小时前
etherCAT的协议VoE,FoE,EoE,CoE的概念和区别
网络
yongui4783417 小时前
C# 与三菱PLC通讯解决方案
开发语言·c#
大数据新鸟17 小时前
操作系统之虚拟内存
java·服务器·网络
迷藏49418 小时前
**eBPF实战进阶:从零构建网络流量监控与过滤系统**在现代云原生架构中,**网络可观测性**和**安全隔离**已成为
java·网络·python·云原生·架构
zmj32032418 小时前
汽车电子内部网络架构图
网络·汽车