凉拌先生 2023-02-08 11:37 采纳率: 93.8%
浏览 19
已结题

node上传文件问题

node 使用multipart/form-data POST上传文件到某个API,如果这个文件没有在本地存储,需要下载到本地然后才能上传吗?还是说从第一个api取下来直接上传给另一个API

例如:

//来源文件地址
const oa_file="http://oa.com/file/a.txt"
//上传地址
const  url="https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=file"
headers= {
            "Authorization": "Basic " + "auth",
            "Content-Type": "multipart/form-data"
            }
...
requests.post(url=url,headers=header,files=oa_file)

  • 写回答

1条回答 默认 最新

  • 北海 2023-02-08 11:54
    关注

    不需要先下载到本地再上传。你可以直接使用stream或者pipe方法来实现从一个API读取文件内容并上传到另一个API。

    const request = require('request');
    const fs = require('fs');
    
    const oaFile = "http://oa.com/file/a.txt";
    const url = "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=file";
    const headers = {
      "Authorization": "Basic " + "auth",
      "Content-Type": "multipart/form-data"
    };
    
    const formData = {
      media: {
        value: request(oaFile),
        options: {
          filename: 'a.txt',
          contentType: 'text/plain'
        }
      }
    };
    
    request.post({ url, headers, formData }, (err, httpResponse, body) => {
      if (err) {
        console.error(err);
      } else {
        console.log(body);
      }
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月17日
  • 已采纳回答 2月9日
  • 修改了问题 2月8日
  • 创建了问题 2月8日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度