如何从 POST 请求上传节点中的图像

Posted

技术标签:

【中文标题】如何从 POST 请求上传节点中的图像【英文标题】:How can I upload images in node from a POST request 【发布时间】:2021-10-25 09:49:33 【问题描述】:

我想通过 POST 请求将数据和图像存储到我的 mongo 数据库中,但我不知道该怎么做。 在请求正文中,我有这样的 JSON 结构:


   "email":"asd@asd.asd",
   "name":"Asd",
   "shrooms":[
      
         "name":"Agaricus bisporus",
         "time":"Fri Mar 19 11:11:25 GMT+01:00 2021",
         "gps":"46.25098652819107,20.149517092792898",
        "img1":"Base64 Encoded",
        "img2":"Base64 Encoded" 
     ,
     
         "name":"Unknown",
         "time":"Fri Mar 19 11:11:25 GMT+01:00 2021",
         "gps":"46.25098652819107,20.149517092792898",
        "img1":"Base64 Encoded",
        "img2":"Base64 Encoded" 
     
   ]

根据蘑菇名称,我想将图像上传到单独的文件夹中。 我有一个路由器:

router.post('/autoUpload/:tourID', ctrlTour.autoUpload);

在 tour.component.js 中,我用这些数据做了很多事情,但我不知道如何上传 Base64 编码的图像。

到现在我只是把文件上传到我的网站,前端发送了多个请求,图片都是multer这样上传的。

router.post('/uploadShroom', uploadShroomImage.single('shroomImg'), ctrlShroom.postShroomImage );
router.post('/uploadNamelessShroom',uploadNamelessShroomImage.single('namelessShroomimg'), ctrlNamelessShroom.postNamelessShroomImage);

我希望它是自动的,所以 POST 请求可以完成所有工作。 有没有办法从控制器类调用这个中间件,或者我应该如何将多个图像上传到多个路径?

【问题讨论】:

【参考方案1】:

这里的正确方法是将图像保存在云存储中,例如 aws s3 并将其位置保存在 mongo db 中,而不是尝试保存图像。

【讨论】:

以上是关于如何从 POST 请求上传节点中的图像的主要内容,如果未能解决你的问题,请参考以下文章

从 React 上传图像请求

如何以 POST 请求的形式上传单独选择的文件? [复制]

使用 HTTP 'POST' 请求在表格中显示图像

如何将图像文件传递到 Flutter 中的 Http 请求(POST)正文?

如何在不公开 API 密钥的情况下发出 POST 请求?

Django - 使用 POST 请求仅上传模型中的图片