实现多个文件边打包边下载的功能,速度还可以,本人亲测,欢迎大家来指点archiver --用NPM安装这个模块---本人文件存储在file-collection 中,可以用fs :
fs.createReadStream(file)
更多带包工具请见 http://stackoverflow.com/questions/20107303/dynamically-create-and-stream-zip-to-client
var fail = function(response,message) {
response.writeHead(200);
var str = "notfound:";
if(message){
str += message;
}
response.end(str);
};WebApp.connectHandlers.use('/my/download',function(req, res, next) {
try {
var ple_code = req.query.ple_code;
var cps_id = req.query.cps_id;
if(ple_code === undefined || cps_id === undefined){
fail(res);
}
var docs_latest = Customor.find({
cps_id: cps_id
}).fetch();
var doc_id_arr = [];
var file_obj = Files.findOne(new Meteor.Collection.ObjectID(ple_code));
if(!file_obj){
fail(res,'ple notfound');
}
doc_id_arr.push({
doc_id: ple_code,
doc_name: file_obj.filename
});
docs_latest.map(function(item) {
_.map(item.docs_ar, function(k) {
var file_obj_tmp = Files.findOne(new Meteor.Collection.ObjectID(k));
doc_id_arr.push({
doc_id: k,
doc_name: file_obj_tmp.filename
});
});
});res.writeHead(200, {
'Content-Type': 'application/zip',
'Content-disposition': 'attachment; filename=myfile.zip'
});
var archiver = Meteor.npmRequire('archiver');
var zip = archiver('zip');// Send the file to the page output.
zip.pipe(res);
_.map(doc_id_arr,function(k){
var lolStream = Files.findOneStream(new Meteor.Collection.ObjectID(k.doc_id));
zip.append(lolStream, {name: k.doc_name});
});
zip.finalize();
} catch (error) {
fail(res,error);
}});

  

转载于:https://www.cnblogs.com/shenggen/p/4572268.html

meteor---在合并打包多个文件ZIP下载的功能相关推荐

  1. java批量文件打包成压缩成zip下载和大量数据导出excel时的处理方法

    对于我们来说,java导出数据成excel或其他数据文件,或者下载资源是开发中的家常便饭, 但是在导出的时候,如果点击一个按钮导出几百万条数据,如果不作处理的话很可能会出现一系列的问题. 这里介绍打包 ...

  2. Java实现批量打包文件Zip下载(适用于Windows,Linux)

    前言 1.思路总结:      * 1.每个单号多个文件直接遍历IO临时单号zip包,      * 2.多个单号临时zip包遍历IO到总临时zip包,      * 3.总临时zip包copy到前端 ...

  3. 【Java】Java实现批量打包文件Zip下载

    有这样一个需求,需要将某个文件夹进行下载,而且该文件下包含多张图片,图片是存储于Linux服务器上的.故采用zip打包方式进行下载.在此并没有采用获取网络图片的方式进行下载,而是找到图片在服务器上存储 ...

  4. linux合并iso文件,多个ISO文件怎样合并为一个ISO文件(Linux下的操作)

    多个ISO文件怎样合并为一个ISO文件?我下载了几张比较小的ISO文件,想做进一张光盘里去,还要在光盘启动下运行? 解决办法: 1. 首先你必須要有一个很大的磁盘空间 大概要3.5g是空闲的 建立一个 ...

  5. 【Flutter】Icons 组件 ( FlutterIcon 下载图标 | 自定义 svg 图标生成 ttf 字体文件 | 使用下载的 ttf 图标文件 )

    文章目录 一.FlutterIcon 下载图标 二.自定义 svg 图标生成 ttf 字体文件 三.使用下载的 ttf 图标文件 四.完整代码示例 五.相关资源 一.FlutterIcon 下载图标 ...

  6. think.class.php下载,PHP_ThinkPHP实现将本地文件打包成zip下载,首先,将FileToZip.class文件放到T - phpStudy...

    ThinkPHP实现将本地文件打包成zip下载 首先,将FileToZip.class文件放到ThinkPHP/Extend/Library/ORG/Util/文件夹中,FileToZip.class ...

  7. 从zip中读取文件 合并到指定的文件中

    从zip中读取文件 合并到指定的文件中 引入 commons-io 版本可以选择更高的版本 <dependency><groupId>commons-io</groupI ...

  8. 批量下载,多文件压缩打包zip下载

    0.写在前面的话 图片批量下载,要求下载时集成为一个压缩包进行下载.从昨天下午折腾到现在,踩坑踩得莫名其妙,还是来唠唠,给自己留个印象的同时,也希望给需要用到这个方法的人带来一些帮助. 1.先叨叨IO ...

  9. 多文件批量下载打包成.zip

    多文件批量下载打包成.zip //下载文件打包成zip压缩包@GetMapping("/zip/{id}")public void zip(@PathVariable(" ...

  10. vue项目批量加载url文件并打包到zip下载

    vue项目批量加载url文件并打包到zip下载 项目里之前是遇到这样一个需求哈,需要根据选择的不同动态批量生成并下载图片, 而且这个图片不是一张一张生成下载,而是要等他选好条件之后, 把对应的图片动态 ...

最新文章

  1. error: Can not locate config makefile for product “xx“.
  2. 避免入坑:如何知道一个导师的人品?
  3. 移动设备页面高度不足时min-height 的尴尬处理
  4. Nginx+Php(FastCGI、Php-fpm)+Mysql+Zend+Memcache+Phpmyadmin+MongoDB+TT安装
  5. Python中的特殊属性与方法
  6. Eclipse 答疑:Eclipse 如何设置 Java 代码自动提示和自动补全?
  7. 编写Spark SQL查询程序
  8. 计算机电缆静电,ZR-DJFPVP计算机电缆
  9. 【转载】Pandas速查手册中文版
  10. 在Android上加载具有AI危害检测的TensorFlow模型
  11. Ubuntu 图形桌面与命令行界面 切换快捷键
  12. 【数字IC】深入浅出理解AXI协议
  13. 小名的开源项目【EamonVenti】0.0篇 —— 学习如何搭建一个简单的SpringCloud架构,体验微服务的强大!
  14. 让你的网速快到不可思议(转)
  15. 计算机专业中怎么样绘制神经网络结构图
  16. 无线网卡被服务器禁用,wifi共享精灵无线网卡被禁用或被接管解决教程
  17. autoJS for 快手极速版 可运行
  18. linux关闭计算机的命令是,关闭Linux计算机的命令操作
  19. DataBinding 大坑总结(网上我暂时搜不到解决方法)
  20. Python爬虫入门之2022软科中国大学排名爬取保存到csv文件

热门文章

  1. 慎重!物联网时代情趣用品真的适合联网么?
  2. Unity3D游戏开发从零单排(三) - 极速创建狂拽酷炫的游戏地形
  3. Installation openQRM
  4. DedeCms网站防挂马注意点
  5. 挑战性题目DSCT301:求不同形态的二叉树数目
  6. 数字媒体技术和数据科学与大数据技术_数据科学与大数据技术专业的女同学,迈出了她的舒适圈...
  7. 华为平板m5鸿蒙,华为平板M5系列发布:搭载麒麟960 售价2088元起
  8. python实现洗牌算法_【Python】洗牌算法及 random 中 shuffle 方法和 sample 方法浅析...
  9. c语言怎样得到函数内参数的值_C语言零基础入门—函数01
  10. php无限分类排序,重新研究这个问题:php无限分类的子分类如何再排序