node用request提交本地文件到服务器

因为公司业务需求,需要大量的重复点击上传文件操作,人工做操作又慢又容易出错,所以自己写了一个node脚本,可一键批量创建文件夹,复制指定目录文件进去,批量打包和批量上传文件。
代码地址git

代码中遇到的问题

  • 用request提交application/json请求
  • 创建多层文件目录(a/b/c)
  • 利用fs拷贝文件
  • 把文件压缩成zip

用request提交application/json请求

在页面上显示是这样的提交
在这里插入图片描述

	var options = {
        'method': 'POST',
        'url': 'https://www.apicloud.com/api2/upload',
        'headers': {
            'Host': 'www.apicloud.com',
            'Referer': 'https://www.apicloud.com/restore',
            'Cookie': ''
        },
        formData:{
            file:fs.createReadStream(`./widget.zip`),
            type:'application/x-zip-compressed',
            name:'widget.zip',
            upload_type:'zip/ver'
        }
    };
    request(options, function (error, response) {
        if (error) throw new Error(error);
        console.log(JSON.parse(response.body));
        
    });

创建多层文件目录(a/b/c)

function mkdirsSync(dirname) {
    if (fs.existsSync(dirname)) {
        return true;
    } else {
        if (mkdirsSync(path.dirname(dirname))) {
            fs.mkdirSync(dirname);
            return true;
        }
    }
}

拷贝文件

function copyFile(src, dist) {
    try{
        fs.writeFileSync(dist, fs.readFileSync(src));
    }catch(e){
        console.log('暂无')
    }
}

把文件压缩成zip

安装compressing

cnpm i compressing --save
	var compressing = require("compressing");
	//文件地址 和 输出文件
	compressing.zip.compressDir('./widget', './widget.zip')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值