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

}
相关推荐
国科安芯5 小时前
一颗当两颗用:ASC4T245S 的“两组独立 2 位 + 控制挂靠 VCCA“账
网络·电平转换·抗辐射·在轨服务
冯胤清5 小时前
《Jev-IDS:网络入侵检测一种系统模型》论文深度分析总结
网络
91刘仁德6 小时前
HTTP协议详解:从URL到HTTP服务器的完整实战
服务器·网络·笔记·网络协议·http
Sarapines Programmer7 小时前
【Wireshark】安装与使用指南
网络·测试工具·wireshark
周杰伦fans7 小时前
8GB显存下模型量化实战指南
人工智能·后端·c#
星夜夏空999 小时前
网络编程(5)—— Reactor实现(v4)
网络
samble9 小时前
从零搭建灌装监控系统(十二):配置系统,原子写入与容错
c#·wpf·mvvm·modbus·工业控制
rest102411 小时前
用io_uring进行io测试
网络
恒拓高科WorkPlus11 小时前
企业怎样选择IM即时通讯平台?私有化部署还是SaaS更适合?
网络·github
修船大队长12 小时前
配置接受报文每个报文对应一个mailbox配置流程记录
网络·单片机·mcu