You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用got向远程URL上传文件?已尝试代码未达预期效果

解决Got上传文件无效的问题

你当前代码的核心问题是误用了json字段传递文件流——json参数专门用于发送JSON格式的数据,完全不适合处理文件流的上传场景。

修复方案分两种场景:


场景1:后端接收原始二进制文件

直接把json字段换成body,保留对应Content-Type即可:

const headers = {
    "Content-Type": "image/png"
}

const requestProperties = {
    method: 'POST',
    url,
    headers,
    body: fs.createReadStream(file.path)
}

const response = await got(requestProperties);

场景2:后端接收multipart/form-data格式(常见的表单上传)

这种情况需要用FormData构建请求体,让它自动生成正确的请求头,避免手动设置出错:

const FormData = require('form-data');
const form = new FormData();
form.append('file', fs.createReadStream(file.path), {
    filename: 'image.png', // 可根据实际文件名调整
    contentType: 'image/png'
});

const requestProperties = {
    method: 'POST',
    url,
    body: form,
    headers: form.getHeaders()
}

const response = await got(requestProperties);

补充说明

  • 若不确定后端接收格式,优先尝试第二种场景,这是绝大多数文件上传接口的标准格式。
  • 手动设置Content-Type时,一定要确保和请求体格式匹配,否则后端无法正确解析。

内容的提问来源于stack exchange,提问作者Sufail Kalathil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:40:36