NodeJS 如何使用multer发送多个图像并上传到cloudinary

eqzww0vc  于 2022-11-04  发布在  Node.js
关注(0)|答案(2)|浏览(168)

我尝试将多个图像发送到nodejs,并使用multer将它们上传到Cloudinary,不是来自一个文件输入的多个图像,而是来自不同的文件输入,如下所示:

<input class="form-control" type="file" id="eventimage1" >
<input class="form-control" type="file" id="eventimage2" >

但我不知道Multer是否能做到。网上有一些解决方案,但不适用于可能的情况,我不知道是否有一种方法来操纵它:

var upload = multer();
app.post('/PATH', upload.array('uploadedImages', 10),FUNCTION)

来解决Multer的问题
这是我目前正在研究的

var upload = multer();
app.post('/PATH', upload.single("Upload_event_image"),FUNCTION)

并以这种方式发送给Cloudinary:

const img = await cloudinary.uploader.upload(req.file.path, {
      public_id: `${Event_title}_eventImage${Event_owners_id}`,
    });

所以我的问题是我如何用multer获取多个图像,并使用Cloudinary发送所有图像

a7qyws3x

a7qyws3x1#

使用upload.any()并为req.files中的每个条目创建一个上载请求:

app.post("/PATH", upload.any(), async function(req, res) {
  await Promise.all(
    req.files.map(file => cloudinary.uploader.upload(file.path, ...))
  );
  res.send(???);
});

问题是你想要什么样的回应。

pod7payv

pod7payv2#

我是云服务的丹尼。
我们的Upload API目前不支持一次接收多个文件。相反,由于我们有相当高的并发率,我们建议使用多个线程一次发送多个文件。
您还可以使用异步调用,并通过添加async参数并将其设置为true来告诉Cloudinary在后台进行上载。
如果您想进一步讨论这个问题,我推荐opening a support ticket with us directly,我们很乐意为您提供帮助:)

相关问题