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

}
相关推荐
YJlio19 分钟前
网络与通信具总览(14.0):从 PsPing 到 TCPView / Whois 的联合作战
开发语言·网络·php
风途知识百科1 小时前
水质监测系统——手持便携式、在线自动化、浮标移动式、立杆固定式四大方案深度剖析
网络·水质
航Hang*1 小时前
第一章:网络系统建设与运维(高级)—— 多区域OSPF路由协议
运维·服务器·网络·笔记·智能路由器·ensp
hbugs0011 小时前
【EVE-NG流量洞察】包过滤规则
网络·eve-ng·bpf表达式·捕获过滤器·eve-ng模拟器
一颗青果1 小时前
TCP协议讲解
服务器·网络·网络协议·tcp/ip
航Hang*1 小时前
第二章:网络系统建设与运维(高级)—— IS-IS路由协议
运维·服务器·网络·笔记·智能路由器·ensp
安科瑞刘鸿鹏171 小时前
企业配电系统中开关柜“可视化运行管理”的实现路径
大数据·运维·网络·物联网
Bruce_Liuxiaowei2 小时前
(2025最后一篇博客)Metasploit框架攻击Windows实例:三种渗透路径
网络·windows·网络安全·网络攻击模型
kylezhao20192 小时前
C# 中常用的定时器详解
开发语言·c#
秋雨雁南飞3 小时前
C# 动态脚本执行器
c#·动态编译