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

}

该文为原创文章,转载请注明原文出处

Author:靓仔建 w: gaolian1025

(希望能帮助到各位,大家的支持是我创作最大动力!现在待业中,希望大家能推荐一下工作。(专注.net C# 6年))

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET Core 提供了一些选项来打包和压缩静态资源,以提高应用程序的性能。下面是一些可用的选项: 1. Bundle and Minify:该选项使用 ASP.NET Core 的内置打包和压缩功能。你可以使用 Microsoft.AspNetCore.Mvc.BundleAndMinify NuGet 包将其添加到项目中。然后,你可以在 Startup.cs 文件中配置它,例如: ``` public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddWebOptimizer(options => { options.MinifyCssFiles(); options.MinifyJsFiles(); options.AddBundle("/bundle.css", "css/bootstrap.css", "css/site.css"); options.AddBundle("/bundle.js", "js/jquery.js", "js/bootstrap.js", "js/site.js"); }); } ``` 2. Gzip Compression:该选项使用 Gzip 压缩压缩静态资源。你可以在 Startup.cs 文件中配置它,例如: ``` public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseStaticFiles(new StaticFileOptions { HttpsCompression = HttpsCompressionMode.Compress, OnPrepareResponse = context => { context.Context.Response.Headers.Append("Cache-Control", "public,max-age=604800"); } }); } ``` 3. Brotli Compression:该选项使用 Brotli 压缩压缩静态资源。你可以使用 Microsoft.AspNetCore.ResponseCompression NuGet 包将其添加到项目中。然后,你可以在 Startup.cs 文件中配置它,例如: ``` public void ConfigureServices(IServiceCollection services) { services.AddResponseCompression(options => { options.EnableForHttps = true; options.Providers.Add<BrotliCompressionProvider>(); }); } ``` 无论你选择哪个选项,都可以提高应用程序的性能。你可以根据自己的需要选择其中一个或多个选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值