nodejs用archiver模块压缩文件

router.get(‘/download/qiantu‘,function(req,res){
	var dirname = (new Date()).getTime()
	var zippath = ‘./down/‘+dirname+‘.zip‘

	var output = fs.createWriteStream(zippath)
	var ziparchiver = archiver(‘zip‘,{
		store:true
	})
	ziparchiver.pipe(output)
	async.mapSeries(req.session.qtimagesurl,function(item, callback){//异步下载
    	setTimeout(function(){
        	//downloadPic(item, dir+‘/‘+ (new Date()).getTime() +‘.jpg‘);
        	ziparchiver.append(request(item),{‘name‘:‘images/‘+(new Date()).getTime() +‘.jpg‘})
       		callback(null, item);
    	},400);
	}, function(err, results){
		req.session.qtimagesurl =[] //下载完成后清空
		ziparchiver.finalize()
		res.render(‘index‘)
	});
})

request(item),请求远程图片文件用request,本地文件就用fs.createReadStream

item为图片路径

var output = fs.createWriteStream(zippath)这个是压缩文件名字

{‘name‘:‘images/‘+(new Date()).getTime() +‘.jpg‘}
压缩文件解压后的命名,/前面会自动生产相应文件夹

ziparchiver.finalize()结束操作

时间: 2024-12-22 00:43:43

nodejs用archiver模块压缩文件的相关文章

nodejs——压缩文件

工作需要,由于html无法访问并下载带有中文的路径,例子:"127.0.0.1::8088/files/第一张图片.jpg",所以想到了先将原图片压缩并命名为不带中文的文件名,下载后用户自行解压缩的方法. 此次采用的包为:archiver 下面是此次我使用该包的源代码和注释,供同学们参考: var ARCHIVER = require('archiver'); var FS = require('fs'); var presentDate = new Date(); var myDat

nodejs第三天(核心模块与文件模块,核心模块和文件模块引入的区别,从模块外部访问模块内部,使用exports对象,npm包管理工具package.json文件,模块对象属性,将模块定义分类,npm发布流程,安装淘宝镜像,模块的管理)

核心模块与文件模块 ndejs是一个js运行环境,是一个平台.nodejs基于操作系统,封装了一些功能,http,tcp,udp,i/o模块,path,fs,stream等等 通过nodejs内置的模块,他们就称为核心模块.(他们都是nodejs内置的)http,fs,path等 文件模块:只要写一个js文件,每一个文件都是模块 .(自己写的js文件都被称为文件模块) 核心模块和文件模块引入的区别 核心模块有环境变量做调度 文件模块需要给出文件路径 注意:核心模块是nodejs内置的一些功能模块

nodejs的require模块及路径

在nodejs中,模块大概可以分为核心模块和文件模块. 核心模块是被编译成二进制代码,引用的时候只需require表示符即可,如(require('net')). 文件模块,则是指js文件.json文件或者是.node文件.在引用文件模块的时候后要加上文件的路径:/-/-/xxx.js表示绝对路径../xxx.js表示相对路径(同一文件夹下的xxx.js),../表示上一级目录.如果既不加/-/.../又不加./的话,则该模块要么是核心模块,要么是从一个node_modules文件夹加载. 对于

如何编写package.json配置NodeJS项目的模块声明

在NodeJS项目中,用package.json文件来声明项目中使用的模块,这样在新的环境部署时,只要在package.json文件所在的目录执行 npm install 命令即可安装所需要的模块. package.json文件中可配置的项有:名称(name).应用描述(description).版本号(version).应用的配置项(config).作者(author).资源仓库地址(repository).授权方式(licenses).目录(directories).应用入口文件(main)

nodejs学习(模块的简单了解)

1.模块模块(Module)是nodejs最重要的支柱,开发一个具有一定规范的程序不可能只用一个文件, 通常我们需要把各个功能拆分,封装,然后在组合在一起,模块正是为了现在这种方式而诞 生的.在浏览器的javascript中,脚本模块的拆分和组合通常情况下我们都使用Html的 Script标签来实现,但是nodejs给我们提供了require这个函数来调用其他的模块.-----------------------------------------------------------------

node压缩文件夹

前几天遇到一个需求,将一个10G的文件夹打包压缩,并去除黑名单上的文件. node自带的只能压缩文件.网上看了集中方案要么对大文件操作不行,要么只能直接操作文件夹,无法对文件夹遍历筛选. 后来确定使用先遍历文件夹打包,然后再压缩的方案.然后在找打包模块时发现tar打包时可以直接压缩.试验后确定使用这种方案.本机试验,12G的文件夹,耗时大约18分钟. 代码如下,其中的tar时第三方模块,需要另外安装     npm install tar 1 var fs = require('fs') 2 v

Grunt压缩文件

安装nodejs,去nodejs的官网下载nodejs,我使用的是第一个如下图所示: 安装grunt-cli npm install -g grunt-cli 建立grunt文件夹,在文件夹下面建立package.json.Gruntfile.js文件 安装grunt npm install grunt 安装grunt插件 npm install grunt-contrib-uglify.grunt-contrib-jshint.grunt-contrib-concat 最后执行grunt就ok

nodejs笔记2-http模块

nodejs 的模块的操作都是异步的:fs对文件的操作,... 1.引入http模块,require , createServer ,listen  .... code: // > node  http.js var http = require('http');//引入http模块var server = http.createServer(function(request,response){ console.log('welcome here'+request.url);//控制台  re

关于Nodejs的多进程模块Cluster

关于Nodejs的多进程模块Cluster 前述 我们都知道nodejs最大的特点就是单进程.无阻塞运行,并且是异步事件驱动的.Nodejs的这些特性能够很好的解决一些问题,例如在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟.通过事件注册.异步函数,开发人员可以提高资源的利用率,性能也会改善.既 然Node.js采用单进程.单线程模式,那么在如今多核硬件流行的环境中,单核性能出色的Nodejs如何利用多核CPU呢?创始人Ryan Dahl建议,运行多个Nodejs