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 分钟前
身份访问控制助力企业开启“人、机、系、智”安全高效协同新范式!
服务器·网络·安全·api安全·身份与访问控制·企业协同
北极光SD-WAN组网20 分钟前
什么是局域网IP?深度解析及远程访问实现指南
网络·tcp/ip·智能路由器
智能化咨询44 分钟前
(65页PPT)运营商ICT增值服务解决方案(附下载方式)
网络
xing.yu.CTF1 小时前
ATT&CK实战系列-红队评估(九)(上)
网络·安全·web安全·横向移动·域渗透·内网对抗
Evan芙1 小时前
Ubuntu系统网卡地址定制
网络·数据库·ubuntu
盛世宏博北京1 小时前
POE 供电以太网温湿度变送器技术原理与性能优化研究
网络·以太网·传感器·poe·温湿度·变送器
公子小六1 小时前
推荐一种手动设置异步线程等待机制的解决方案
windows·microsoft·c#·.net
兮动人1 小时前
解决微软应用商店 (Microsoft store) 打不开,无网络连接的问题!
网络·microsoft
code bean1 小时前
【C++】全局函数和全局变量
开发语言·c++·c#
yi碗汤园2 小时前
C#实现对UI元素的拖拽
开发语言·ui·unity·c#