node 后台 给其它server 通过 post 发送图片

npm i axios form-data request --save

const fs = require('fs');
const axios = require('axios');
const FormData = require('form-data');
const form = new FormData();
   const filePath = path.join(__dirname, "../../public/xxx.jpg");
   // 给一个filename,让接收端能根据filename保存图片
   const config = { filename: "xxx.jpg", contentType: "multipart/form-data" };
   // 第一个参数是flask接受文件时的标识,一定要有
   // 第三个参数flask要求文件上传时一定要把请求头的contentType设置为multipart/form-data
   form.append("xxx", fs.createReadStream(filePath), config);
   const formHeaders = form.getHeaders();
   const upload = await axios.post("xxHOST/xxAPI", form, {
     headers: {
       ...formHeaders,
     },
   });
   console.log(upload.data)

npm i request

var request = require('request');
var fs = require('fs');
var options = {
   'method': 'POST',
   'url': 'http://192.168.0.12/v1',
   'headers': {
      'User-Agent': 'apifox/1.0.0 (https://www.apifox.cn)'
   },
   formData: {
      'token': 'aa',
      'file': {
         'value': fs.createReadStream('C:\\Users\\WuLiang\\Desktop\\test2\\(Z0(5KAOG`A(`J{I3IKX8AW.png'),
         'options': {
            'filename': 'C:\\Users\\WuLiang\\Desktop\\test2\\(Z0(5KAOG`A(`J{I3IKX8AW.png',
            'contentType': null
         }
      }
   }
};
request(options, function (error, response) {
   if (error) throw new Error(error);
   console.log(response.body);
});

Python

pip3 install flask

from flask import Flask,request,send_from_directory
import os
# 设置一个文件上传路径,保存上传过来的图片
app.config['UPLOAD_PATH'] = os.path.join(app.root_path, 'uploads')
# 只接受POST方法
@app.route('/xxx', methods=['POST'])
def upload():
    # 这里的【xxx】就是在前面我们说的标识,没有这个标识就没法从请求对象中找到我们指定的图片
    xxx = request.files['xxx']
    # 路径, 文件名来保存图片
    xxx.save(os.path.join(app.config['UPLOAD_PATH'], xxx.filename))
    return '上传成功'
if __name__ == "__main__":
    app.run(debug=True)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值