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

}
相关推荐
chy0000123 分钟前
视频播放器无法连接网络问题排查与解决总结
网络·音视频
幸福指北42 分钟前
我用 Tauri + Vue 3 + Rust 开发了这款跨平台网络连接查看工具PortView,性能炸裂!
运维·网络·监控
V__KING__1 小时前
systemd-remount-fs,fstab之间的渊源
linux·服务器·网络
小杰帅气1 小时前
基础的数据链路层理解
网络
2301_775602382 小时前
创龙评估板代码分析
网络
zx_zx_1232 小时前
传输层协议tcp (2)
服务器·网络·tcp/ip
贝拉学无止尽3 小时前
跨境电商如何搭建网络实操方案
网络·网络安全·跨境网络
lplum_4 小时前
2025第十届“楚慧杯”湖北省网络与数据安全实践能力竞赛 wp
网络·安全·web安全·网络安全·系统安全·密码学·新人首发
小谢取证4 小时前
侦查笔记:云服务器镜像快速勘验
网络
mounter6255 小时前
基于MLX设备的Devlink 工具全指南与核心架构演进
linux·运维·服务器·网络·架构·kernel