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

如何从路由返回的req.files对象中正确提取filename属性

现有代码的核心问题是错误使用Array()对req.files做了二次包装。如果req.files本身就是存储所有上传文件的数组,Array(req.files)会生成一个嵌套的二维数组,结构为[[文件1, 文件2, ...]],遍历的时候只会循环一次,只能拿到第一个文件的filename,无法覆盖所有上传文件。

修正后的遍历写法:

let arrayImages = [];

if (req.files) {                                                      
  // 直接遍历原生req.files数组即可
  req.files.forEach(image => {
    arrayImages.push(image.filename);
  })
}

如果需要更简洁的实现,可以直接用数组的map方法配合可选链语法:

// 若req.files存在则遍历提取filename,否则返回空数组
const arrayImages = req.files?.map(image => image.filename) || [];

内容的提问来源于stack exchange,提问作者Pablo Berrettoni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:06:04