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

}
相关推荐
123过去26 分钟前
pixiewps使用教程
linux·网络·测试工具·算法·哈希算法
RMB Player44 分钟前
Spring Boot 集成飞书推送超详细教程:文本消息、签名校验、封装工具类一篇搞定
java·网络·spring boot·后端·spring·飞书
WarrenMondeville1 小时前
1.Unity面向对象-单一职责原则
unity·设计模式·c#
JicasdC123asd2 小时前
CGNet上下文引导网络改进YOLOv26下采样特征保留能力
网络·yolo
Name_NaN_None3 小时前
Linux 使用 Remmina 连接 Windows 远程桌面 ——「小白教程」
linux·网络·电脑·远程工作
寒风暖哥3 小时前
Oracle视图查询返回空数据集的分析
oracle·c#
万兴丶3 小时前
Unity用C#完成抖音小游戏接入引力引擎(Gravity Engine)完整指南,一篇文章讲清楚!
unity·c#·游戏引擎·抖音
2401_865721333 小时前
WEB 学习框架搭建
网络·学习·web
LlNingyu3 小时前
文艺复兴, 什么是XSS,常见形式(三)
网络·安全·xss
123过去4 小时前
reaver使用教程
linux·网络·测试工具·智能路由器