【发布时间】:2020-04-23 14:13:03
【问题描述】:
我正在尝试使用 axios (nodejs) 发送图像以表达具有强大功能的服务器。 这是axios脚本的代码:
const axios = require('axios');
const fs = require('fs')
const FormData = require('form-data')
var img = fs.readFileSync("C:/Users/alessio/Documents/FX/screenshot.png", 'utf8');
console.log(img)
let data = new FormData();
data.append('img', img, "img.png")
console.log(data);
axios.post('http://192.168.43.193:3000/testAPI/upload_img_mt', data, {
headers: {
'accept': 'application/json',
'Accept-Language': 'en-US,en,q=0.8',
'Content-Type': `multipart/form-data; boundary=${data._boundary}`,
'timeout': 999999
},
})
.then(function (response){
//console.log(response);
})
这是带有 express 的代码服务器端,并且带有强大的响应管理:
router.post('/upload_img_mt', function(req, res, next){
console.log(req)
var form = new formidable.IncomingForm();
form.uploadDir = "fxdiary";
form.encoding = 'utf8';
form.on('fileBegin', function(name, file){
console.log(form.uploadDir + "/" + file.name);
});
form.parse(req, function(err, fields, files) {
console.log(files);
console.log(err);
console.log(fields);
});
res.sendStatus(200);
});
文件图像已保存,但不是正确的 png 图像。图像的大小不正确,有时会随机变化。广告示例原始文件大小为 33k,变为 900bytes 或 54k 或其他值。
发生了什么?这段代码哪里出了问题?
【问题讨论】:
-
你能评论 console.log(files);控制台日志(错误);控制台.log(字段);这三个的调试日志
-
解析的登录回调不在控制台打印。唯一打印的日志在'fileBegin'。
标签: node.js express axios formidable