node.js - 我在nodejs环境下使用axios发送图片到nestjs服务器,但是服务器没有拿到图片信息
问题描述
我使用流式传输将图像发送到服务器,而不是发送整个图像 https://github.com/axios/axios#request-config
(async () => {
let r = await axios
.post(`http://localhost:5000/upload`, {
file: fs.createReadStream("C:\\Users\\Administrator\\Pictures\\a.jpg"),
// Error: Request failed with status code 500
// file: await fs.readFile("C:\\Users\\Administrator\\Pictures\\a.jpg")
})
.then(v => v.data);
l(r); // ok
})();
服务器代码https://docs.nestjs.com/techniques/file-upload
@Post('upload')
@UseInterceptors(FileInterceptor('file'))
upload(@UploadedFile() file, @Body() body) {
l(file); // undefined
return 'ok';
}
我已经尝试了很长时间,我该怎么办?
解决方案
纱线添加表单数据
(async () => {
const l = console.log;
const axios = require("axios");
const fs = require("fs-extra");
var FormData = require("form-data");
var form = new FormData();
form.append("file", fs.createReadStream("C:\\Users\\Administrator\\Pictures\\a.jpg"));
form.append("type", "avatar");
let r = await axios({
method: "post",
url: "http://localhost:5000/upload",
data: form,
headers: form.getHeaders()
}).then(v => v.data);
l(r); // ok
})();
推荐阅读
- ios - 加速器 ios 构建失败问题
- android - Google Play 发布前报告的辅助功能警告
- javascript - three.js 在双击时动态生成对象
- mysql - MariaDB:唯一索引的 varchar 列大小限制问题
- javascript - 如果 Google API 密钥(在 index.html 中提到)失效,混合 cordova 项目会发生什么?
- php - Wordpress Woocommerce 高级自定义字段 True/False 始终返回 NULL
- entity-framework - 仅在 Azure webapp 中的单个查询的 SQL 连接超时错误
- dialogflow-es - 在对话框流中获取自定义位置或地址时出错
- angular - Angular Reactiveforms 动态数据
- php - 在 opencart 2.0.3 中找到相应 .tpl 文件的控制器文件