node使用form-data上传文件

node使用form-data上传文件


node无法直接像html中使用new FormData() 创建对象,要使用form-data库,具体使用参考npm-from-data,使用举例如下:

const axios = require('axios');
const FormData = require('form-data');
const path = require('path');
const fs = require('fs');

const form = new FormData();
form.append('transactionType', '02');
form.append('transactionIDType', '02');
form.append('transactionID', '02202208030919595260');
form.append('files', fs.createReadStream(path.resolve(__dirname, './imgs/a.png')));
axios({
  url: 'http://10.211.66.173:8123/ca/api/ndc/v0/api/attachment',
  method: 'post',
  data: form,
  headers: {
    ...form.getHeaders(),
    'Host': '10.211.66.173',
    'Channel-ID': 'AIRCHINA_TCH'
  }
}).then(
  res => {
    console.log('==>res', res.data)
  }).catch(
    err => {
    console.log('err', err)
  })
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果你使用的是 Node.js 平台,可以使用 multer 中间件来解析 form-data 格式的请求,并且设置文件上传的白名单。 在 multer 中,可以使用 `fileFilter` 选项来指定一个函数,该函数会在每个文件上传之前被调用,用于判断文件是否合法。如果函数返回 `false`,则 multer 会拒绝上传该文件。 如果你想要把文件加入白名单,可以在 `fileFilter` 函数中判断文件的扩展名是否在白名单中,如果在,则返回 `true`,否则返回 `false`。 下面是一个示例代码: ```javascript const multer = require('multer'); // 定义白名单 const allowedExtensions = ['.jpg', '.png', '.gif']; // 定义 fileFilter 函数 const fileFilter = (req, file, cb) => { const extension = '.' + file.originalname.split('.').pop(); if (allowedExtensions.includes(extension)) { cb(null, true); // 允许上传 } else { cb(null, false); // 拒绝上传 } }; // 创建 multer 实例 const upload = multer({ fileFilter }); // 使用 multer 中间件处理上传请求 app.post('/upload', upload.single('file'), (req, res) => { // 处理上传的文件 }); ``` 在上面的代码中,我们定义了一个白名单 `allowedExtensions`,并在 `fileFilter` 函数中判断文件的扩展名是否在白名单中。如果在,则调用 `cb(null, true)` 允许上传,否则调用 `cb(null, false)` 拒绝上传。最后,我们使用 `upload.single('file')` 中间件来处理上传请求,并在回调函数中处理上传的文件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值