在cloudinary中我有一个名为images的文件夹,我想将文件上传到该文件夹中。我已经设置了cloudinary config。存储选项和文件过滤器已完成。在请求中,我发送post请求,将文件上传到cloudinary,但不上传到文件夹。如何将文件上传到Cloudinary中的某个文件夹?
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, './images/');
},
filename: (req, file, cb) => {
cb(null, new Date().toISOString().replace(/:/g, '-') + file.originalname);
}
});
const fileFilter = (req, file, cb) => {
if (!file.mimetype.match(/jpe|jpeg|png|gif$i/)) {
cb(new Error('File is not supported'), false);
return;
}
cb(null, true);
};
const upload = multer({
storage,
fileFilter
});
router.post('/', upload.single('profileImage'), async (req,res) => {
const result = await cloudinary.v2.uploader.upload(req.file.path);
})
2条答案
按热度按时间icnyk63a1#
执行上载请求时,您可以指定一组用于该上载的选项。在这些选项中,您可以指定文件存储位置的“public_id”(文件名)和/或“文件夹”。
例如,要将文件上传到名为“test”的文件夹,您可以使用以下代码:
您可以通过文档的此部分找到上传方法的所有可用选项:https://cloudinary.com/documentation/image_upload_api_reference#upload_method
zz2j4svz2#
This answer不适合我使用
"cloudinary": "^1.25.1"
。从未调用回调。我假设它没有把第二个参数当作配置对象,但我没有费心去进一步研究它,因为我宁愿使用promise。对于v2,基于promise的上传API工作得很好:
文档中没有显示
.catch
,但我还是添加了一个,因为任何请求都可能失败。