前端本地zip文件上传到后台

    最近和后台交互时,需要一个功能,把用户本地的zip文件上传到后台,用于计算分析数据。本来想自己原生代码实现,奈何臣妾做不到啊,实在太难了,还是用node的form-data实现了此功能,比自己写好多了,神清气爽。

form-data地址:form-data  用于创建可读"multipart/form-data"流的库。可用于将表单和文件上载提交到其他Web应用程序。

用法:

 1.安装

npm install --save form-data

2.引入form-data和fs,fs模块用于对系统文件及目录进行读写操作

const fs = require('fs');

const nodeFormData = require('form-data');

3. 上传文件

 function postzip() {
                return new Promise((response, rej) => {
                    const http = require('http');
                    var form = new nodeFormData();
                    form.append('上传文件参数名', fs.createReadStream("本地zip地址"));
                    var headers = form.getHeaders();

                    var request = http.request({
                        method: 'post',
                        host: '域名',
                        port:'端口',
                        path: '接口地址',
                        headers: form.getHeaders()
                    }, function(res) {
                        // 数据
                        let dataBuffer = "";  
                        res.on("data",function(chunk) {
                            dataBuffer += chunk;
                        })  
                        res.on("end",function() {
                            let data = JSON.parse(dataBuffer);
                            console.log(data)
                        }); 
                        res.on("error",function(e){  
                            console.log(e);
                        });
                    }).on('error',function(e) {
                        console.log("上传数据失败"+e);
                    });
                    form.pipe(request);
                });
            }

这里需要说明的是如果不设置端口port,那么请求的时候node会自动设置端口为 80,地址和域名必须分开写,如果都写到path中是不起作用的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值