首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用axios和formidable发送图像( nodejs -> express )

使用axios和formidable发送图像( nodejs -> express )
EN

Stack Overflow用户
提问于 2020-01-06 07:54:16
回答 1查看 1.1K关注 0票数 2

我正在尝试发送一个带有axios (nodejs)的图像来表示具有formidable的服务器。这是axios脚本的代码:

代码语言:javascript
复制
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的代码服务器端,以及使用formidable管理的响应:

代码语言:javascript
复制
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,并变为900字节或54k或其他值。

发生了什么?这段代码的问题出在哪里?

EN

回答 1

Stack Overflow用户

发布于 2020-01-06 18:27:19

你不需要在内容类型的头中传递边界,因为它是由浏览器自动添加的。您可能会破坏默认的边界机制。

如果您仍然面临文件大小问题,请尝试在NodeJS端使用multer模块进行文件处理

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59605250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档