如何从 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 请求上传节点中的图像的主要内容,如果未能解决你的问题,请参考以下文章