You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloudinary上传raw类型文件返回结果无文件扩展名如何解决

问题根因
  • 你使用multer上传生成的临时文件默认不带原始文件扩展名,Cloudinary读取临时文件时无法识别对应后缀
  • raw类型资源默认不会自动把扩展名追加到public_id、url、secure_url等返回字段中,需要额外配置参数
解决方案

修改上传逻辑,手动提取原始文件扩展名传入Cloudinary上传配置即可,修改后的代码如下:

const path = require('path'); // 顶部引入node内置path模块

router.post("/uploadFileMessage", upload.single('file'), async (req, res) => {
  // 提取原始文件扩展名,移除开头的.符号
  const fileExtension = path.extname(req.file.originalname).slice(1);
  cloudinary.v2.uploader.upload(req.file.path ,{
    use_filename: true, 
    resource_type: 'raw',
    format: fileExtension, // 手动指定文件格式
    keep_original_extension: true // 配置将扩展名保留到返回的public_id、url字段中
  },async function(error, result) { 
    if(error) return res.status(400).send(error)
     return res.status(200).send(result)
    })
})
补充说明

如果不需要Cloudinary自动为文件名添加随机后缀,可以在配置中新增unique_filename: false,最终生成的public_id会完全匹配原始文件名加扩展名。

内容的提问来源于stack exchange,提问作者Mr.EmD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:54:03