首页 > 解决方案 > 从节点客户端到节点服务器的多个文件上传

问题描述

嗨,我正在运行一个带有 multer 的节点服务器来上传多个文件。

const multer = require('multer');
const app = express();

const upload = multer({dest:'uploads/'});

const SERVER_PORT = 8080;

app.listen(SERVER_PORT,()=>{
    console.log("Server listening")
})

app.post('/upload/bak', upload.array('file'), (req,res)=>{
    console.log(JSON.stringify(req.files[0]))
    // console.log("Files uploaded: " + req.files.reduce((prev,current)=>{
    //     console.log(JSON.stringify(prev))
    // }))

    res.end(JSON.stringify({
        status:"complete"
    }));

})

现在我可以postman使用form-data post请求并选择多个文件来发布多个文件(存储在系统上)。

我在这里尝试完成的是使用另一个节点应用程序来完成它(最好使用axiosand streams,这样如果文件很大,它们就不会占用所有内存)。

如何将多个流放入formdata并发布,以便上述应用程序能够处理它?

请帮忙!

标签: javascriptnode.jsaxios

解决方案


您可以使用 FORMDATA 上传。

    const formData = new FormData();

    formData.append('avatar',file)

    return  await axios.post(this.UPLOAD_ENDPOINT, formData,{
        headers: {
            'content-type': 'multipart/form-data'
        }
    });

阅读更多:https ://www.techiediaries.com/react-formdata-file-upload-multipart-form-tutorial/


推荐阅读