MVC实现实现文件流打包成压缩包
MVC实现实现文件流打包成压缩包
1、使用压缩类库SharpZipLib
SharpZipLib 是一款比较经典实用C#压缩类库
SharpZipLib 库特点:功能丰富、稳定 ,支持主流 zip、Gzip Tar BZip2 格式
2、项目中引用
SharpZipLib的官方地址是:http://icsharpcode.github.io/SharpZipLib/,实际使用可以通过NuGet获取,在NuGet的地址是:http://www.nuget.org/packages/SharpZipLib/
在Visual Studio中可以通过NuGet程序包管理控制台输入命令PM> Install-Package SharpZipLib或者用NuGet管理界面搜索并安装。
需要引用命名空间:
using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip;
using System.IO;
3、MVC代码示例 直接从文件流输出zip
//控制器写法
public FileResult PrintData()
{
byte[] bytePDF = 需要打包的文件流;
byte[] result = null;
using (MemoryStream ms = new MemoryStream())
{
using (ZipOutputStream zipStream = new ZipOutputStream(ms))
{
zipStream.Password = "123456";//设置压缩包密码
ZipEntry entry = new ZipEntry("文件名");
entry.DateTime = DateTime.Now;//创建时间
zipStream.PutNextEntry(entry);
zipStream.Write(bytePDF, 0, bytePDF.Length);
zipStream.CloseEntry();
zipStream.IsStreamOwner = false;
zipStream.Finish();
zipStream.Close();
ms.Position = 0;
//压缩后的数据被保存到了byte[]数组中。
result = ms.ToArray();
}
}
return File(result, "application/zip", "文件名.zip");
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)