C# 多文件打包
public HttpResponseMessage GetZip()
{
var response = Request.CreateResponse(HttpStatusCode.OK);
try
{
ZipOutputStream zipOutputStream = null;
var pdfFiles =new List<fileC>;//pdfFiles 实际存在的文件路径列表
var tempDirPath = System.Web.Hosting.HostingEnvironment.MapPath("~/temp");
MemoryStream ms = new MemoryStream();
zipOutputStream = new ZipOutputStream(ms);
if (pdfFiles.Any())
{
foreach (var pdfFile in pdfFiles)
{
var fileInfo = new FileInfo(pdfFile.path);
ZipEntry entry = new ZipEntry(pdfFile.fileName);
entry.DateTime = DateTime.Now;
entry.Size = fileInfo.Length;
zipOutputStream.PutNextEntry(entry);
byte[] buffer = new byte[4096];
using (var streamReader = File.OpenRead(pdfFile.path))
{
StreamUtils.Copy(streamReader, zipOutputStream, buffer);
}
zipOutputStream.CloseEntry();
}
}
zipOutputStream.IsStreamOwner = false;
zipOutputStream.Close();
ms.Position = 0;
//var response = Request.CreateResponse(HttpStatusCode.OK);
response.Content = new StreamContent(new MemoryStream(ms.ToArray()));
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); //octec-stream
response.Content.Headers.ContentLength = ms.Length;
ContentDispositionHeaderValue contentDisposition = null;
contentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "candidates.zip"
};
response.Content.Headers.ContentDisposition = contentDisposition;
var tempDir = new DirectoryInfo(tempDirPath);
tempDir.Delete(true);
}
catch (Exception ex)
{
//response.Content = new StringContent(ex.Message);
logger.ErrorFormat("错误消息:{0} \r\n,堆栈跟踪:{1}", ex.Message, ex.StackTrace);
}
return response;
}
C# 多文件打包的更多相关文章
- 【JavaScript】 Webpack安装及文件打包
背景 最近开启一个新项目,需要对前端的各类资源文件进行打包,经过多方调研后,决定使用webpack工具.但是网上的教程多是将webpack直接作为服务器使用,而我只是想将其作为单纯的资源打包工具而已. ...
- 文件打包,下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
总结: 使用PHP下载文件的操作需要给出四个header(),可以参考我的另一篇博文: ...
- .deb文件打包
最近因项目需要,需要把文件夹打包为.deb格式的包,幸亏一位朋友帮忙指导了我一个晚上,才得以完成,这里再次对他表示感谢. 整理打包流程如下: 请先参考此博客内容,了解deb文件打包 如何制作Deb包和 ...
- Linux 系统常用命令汇总(六) 文件打包与压缩
文件打包与压缩 命令 选项 注解 示例 compress 文件名 压缩指定的文件,压缩后的格式为*.z compress install.log -d 解压被压缩的文件 .z为后缀的文件:compr ...
- Delphi 中将一些 Dll等生成资源文件打包成一个独立的EXE程序方法步骤
资源文件一般为扩展名为res的文件,其自带的资源编译工具BRCC32.EXE(位于/Delphi/BIN目录下) 1.编写rc脚本文本 用记事本或其它文本编辑器编写一个扩展名为rc的文件,格式分别为在 ...
- Asp.Net Web Api 2 实现多文件打包并下载文件示例源码_转
一篇关于Asp.Net Web Api下载文件的文章,之前我也写过类似的文章,请见:<ASP.NET(C#) Web Api通过文件流下载文件到本地实例>本文以这篇文章的基础,提供了Byt ...
- 把java文件打包成.jar (jar命令详解)
把java文件打包成.jar (jar命令详解) 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1. ...
- linux常用命令之--文件打包与压缩命令
linux的文件打包与压缩命令 1.压缩与解压命令 compress:用于压缩指定的文件,后缀为.z 其命令格式如下: compress [-d] 文件名 常用参数: -d:解压被压缩的文件(.z为后 ...
- 如何将class文件打包成jar 这里提供两种方式!
原地址:http://blog.163.com/09zzy@126/blog/static/711976652011101001530/ 如何将class文件打包成jar文件,这是一个很严肃的问题,当 ...
- QuaZip实现多文件打包
项目需求: 在Goldenfarm客户端中当用户选择了本地场景文件,并进行本地场景文件分析后会产生分析结果,分析结果主要包括:贴图纹理.可渲染层等,其中贴图纹理指出了在场景文件中使用到的贴图或其它文件 ...
随机推荐
- 在 Development 环境下依赖注入的行为可能有所不同
奇怪的问题 本周被一个奇怪的问题困扰了一天.事情的起因是这样的:在某个 PR 合并后,我拉了最新代码,但是在我本地F5调试始终报错.示例代码如下: public interface Interface ...
- Linux安全加固(一)
1.Linux关键用户文件/etc/password文件 Root:x:0:0:root:/bin/bash ●用户名:代表用户账号的字符串.通常长度不超过8个字符,并且由大小写字母和/或数字组成.登 ...
- cpa-税法
1.税法总论 2.增值税法 3.消费税法 4.企业所得税法 5.个人所得税法 6.城市维护建设税法和烟叶税法 7.关税法和船舶吨税法 8.资源税法和环境保护税法 9.城镇土地使用税法和耕地占用税法 1 ...
- w3cschool-Spring Security
https://www.w3cschool.cn/springsecurity/na1k1ihx.html Spring Security,这是一种基于 Spring AOP 和 Servlet 过滤 ...
- biancheng-Spring MVC
MVC设计模式简介 http://c.biancheng.net/spring_mvc/ MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,V(View)指视图层,C(Control ...
- linux 亲测wget安装7.3 liferay流程
liferay wget 7.3版本安装1. 下载软件包 sudo wget https://sourceforge.net/projects/lportal/files/Liferay%20Port ...
- unicode编码 asis_2019_unicorn_shop
这题就是让我们购买第四个商品 当我们输入price为1337.0的时候他会报错,显示要我们只输入一个字符 那么我们就要想怎样用一个字符来表示一个比1337还要大的数字 答案是unicode 编码 (题 ...
- Vue项目实战:构建你的第一个项目
Vue项目实战:从零到一构建你的第一个应用 准备工作 在开始使用Vue之前,请确保您已经安装了Node.js 16.0或更高版本.Node.js是运行Vue项目所必需的JavaScript运行环境. ...
- Java微信小程序登录接口获取openid
根据官方文档,wx.login()的回调函数中,需要我们传递生成的用户登录凭证到code2accessToken的接口中 小程序登录方法 code2accessToken的方法中要求传入如下参数 ...
- Springboot - [06] yaml语法讲解
Yaml是一种标记语言,Yaml也不是一种标记语言. 一.yaml写法示例 application.yaml # 普通的key-value name: harley server.port: 8081 ...