meteor---在合并打包多个文件ZIP下载的功能
实现多个文件边打包边下载的功能,速度还可以,本人亲测,欢迎大家来指点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下载的功能相关推荐
- java批量文件打包成压缩成zip下载和大量数据导出excel时的处理方法
对于我们来说,java导出数据成excel或其他数据文件,或者下载资源是开发中的家常便饭, 但是在导出的时候,如果点击一个按钮导出几百万条数据,如果不作处理的话很可能会出现一系列的问题. 这里介绍打包 ...
- Java实现批量打包文件Zip下载(适用于Windows,Linux)
前言 1.思路总结: * 1.每个单号多个文件直接遍历IO临时单号zip包, * 2.多个单号临时zip包遍历IO到总临时zip包, * 3.总临时zip包copy到前端 ...
- 【Java】Java实现批量打包文件Zip下载
有这样一个需求,需要将某个文件夹进行下载,而且该文件下包含多张图片,图片是存储于Linux服务器上的.故采用zip打包方式进行下载.在此并没有采用获取网络图片的方式进行下载,而是找到图片在服务器上存储 ...
- linux合并iso文件,多个ISO文件怎样合并为一个ISO文件(Linux下的操作)
多个ISO文件怎样合并为一个ISO文件?我下载了几张比较小的ISO文件,想做进一张光盘里去,还要在光盘启动下运行? 解决办法: 1. 首先你必須要有一个很大的磁盘空间 大概要3.5g是空闲的 建立一个 ...
- 【Flutter】Icons 组件 ( FlutterIcon 下载图标 | 自定义 svg 图标生成 ttf 字体文件 | 使用下载的 ttf 图标文件 )
文章目录 一.FlutterIcon 下载图标 二.自定义 svg 图标生成 ttf 字体文件 三.使用下载的 ttf 图标文件 四.完整代码示例 五.相关资源 一.FlutterIcon 下载图标 ...
- think.class.php下载,PHP_ThinkPHP实现将本地文件打包成zip下载,首先,将FileToZip.class文件放到T - phpStudy...
ThinkPHP实现将本地文件打包成zip下载 首先,将FileToZip.class文件放到ThinkPHP/Extend/Library/ORG/Util/文件夹中,FileToZip.class ...
- 从zip中读取文件 合并到指定的文件中
从zip中读取文件 合并到指定的文件中 引入 commons-io 版本可以选择更高的版本 <dependency><groupId>commons-io</groupI ...
- 批量下载,多文件压缩打包zip下载
0.写在前面的话 图片批量下载,要求下载时集成为一个压缩包进行下载.从昨天下午折腾到现在,踩坑踩得莫名其妙,还是来唠唠,给自己留个印象的同时,也希望给需要用到这个方法的人带来一些帮助. 1.先叨叨IO ...
- 多文件批量下载打包成.zip
多文件批量下载打包成.zip //下载文件打包成zip压缩包@GetMapping("/zip/{id}")public void zip(@PathVariable(" ...
- vue项目批量加载url文件并打包到zip下载
vue项目批量加载url文件并打包到zip下载 项目里之前是遇到这样一个需求哈,需要根据选择的不同动态批量生成并下载图片, 而且这个图片不是一张一张生成下载,而是要等他选好条件之后, 把对应的图片动态 ...
最新文章
- error: Can not locate config makefile for product “xx“.
- 避免入坑:如何知道一个导师的人品?
- 移动设备页面高度不足时min-height 的尴尬处理
- Nginx+Php(FastCGI、Php-fpm)+Mysql+Zend+Memcache+Phpmyadmin+MongoDB+TT安装
- Python中的特殊属性与方法
- Eclipse 答疑:Eclipse 如何设置 Java 代码自动提示和自动补全?
- 编写Spark SQL查询程序
- 计算机电缆静电,ZR-DJFPVP计算机电缆
- 【转载】Pandas速查手册中文版
- 在Android上加载具有AI危害检测的TensorFlow模型
- Ubuntu 图形桌面与命令行界面 切换快捷键
- 【数字IC】深入浅出理解AXI协议
- 小名的开源项目【EamonVenti】0.0篇 —— 学习如何搭建一个简单的SpringCloud架构,体验微服务的强大!
- 让你的网速快到不可思议(转)
- 计算机专业中怎么样绘制神经网络结构图
- 无线网卡被服务器禁用,wifi共享精灵无线网卡被禁用或被接管解决教程
- autoJS for 快手极速版 可运行
- linux关闭计算机的命令是,关闭Linux计算机的命令操作
- DataBinding 大坑总结(网上我暂时搜不到解决方法)
- Python爬虫入门之2022软科中国大学排名爬取保存到csv文件
热门文章
- 慎重!物联网时代情趣用品真的适合联网么?
- Unity3D游戏开发从零单排(三) - 极速创建狂拽酷炫的游戏地形
- Installation openQRM
- DedeCms网站防挂马注意点
- 挑战性题目DSCT301:求不同形态的二叉树数目
- 数字媒体技术和数据科学与大数据技术_数据科学与大数据技术专业的女同学,迈出了她的舒适圈...
- 华为平板m5鸿蒙,华为平板M5系列发布:搭载麒麟960 售价2088元起
- python实现洗牌算法_【Python】洗牌算法及 random 中 shuffle 方法和 sample 方法浅析...
- c语言怎样得到函数内参数的值_C语言零基础入门—函数01
- php无限分类排序,重新研究这个问题:php无限分类的子分类如何再排序