首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Multer无法获取文件名

Multer是一个流行的Node.js中间件,用于处理文件上传。它提供了方便的API来处理上传的文件,并将其保存到服务器上的指定位置。

然而,Multer确实无法直接获取文件名。它提供的req.file对象包含了上传文件的一些信息,但没有直接包含文件名。要获取文件名,可以使用req.file.originalname属性。

以下是对Multer无法获取文件名的解释和解决方法:

  1. 解释: Multer在处理文件上传时,将上传的文件保存在磁盘上,并将文件信息存储在req.file对象中。该对象包含了文件的一些属性,如文件的原始名称(originalname)、文件的存储名称(filename)、文件的大小(size)等。然而,Multer并没有提供直接获取文件名的方法或属性。
  2. 解决方法: 要获取文件名,可以使用req.file.originalname属性。该属性包含了上传文件的原始名称,可以通过访问req.file.originalname来获取文件名。

示例代码如下所示:

代码语言:txt
复制
const multer = require('multer');
const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, 'uploads/')
  },
  filename: function (req, file, cb) {
    cb(null, file.originalname)
  }
});
const upload = multer({ storage: storage });

app.post('/upload', upload.single('file'), function (req, res, next) {
  // 获取文件名
  const fileName = req.file.originalname;
  // 其他处理逻辑
});

在上述示例中,我们使用Multer的diskStorage配置来指定文件的存储位置和文件名。在上传文件后,可以通过访问req.file.originalname来获取文件名。

  1. Multer相关产品和产品介绍链接地址: 腾讯云提供了一系列与文件存储相关的产品,其中包括对象存储(COS)、云存储网关(CSG)等。这些产品可以与Multer结合使用,实现文件上传和存储的需求。
  • 腾讯云对象存储(COS):提供了高可靠、低成本的对象存储服务,适用于存储和处理任意类型的文件。详情请参考:腾讯云对象存储(COS)
  • 腾讯云云存储网关(CSG):提供了文件协议转换和文件存储的解决方案,可以将本地文件系统映射为云端存储。详情请参考:腾讯云云存储网关(CSG)

通过使用腾讯云的相关产品,可以实现更高效、可靠的文件上传和存储。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Kettle之“获取文件名

现在需要把这些文件的内容导入一个表,除了文件中的两列,还要存一列记录对应的文件名。 作为一个搞数据库的,导入数据本来是小事一桩,可这有几百个文件要手工逐个处理未免太麻烦了,于是想起了Kettle。...Kettle的转换处理数据流,其中有一个“获取文件名”的输入对象,可以使用它在导入文件数据时添加上文件名字段,而且支持正则表达式同时获取多个文件名,正好适用此场景。下面为实现步骤。 1....新建一个转换,包含“获取文件名”、“文本文件输入”、“表输出”三个步骤,如下图所示。 ? 2. “获取文件名”如下图所示。 ? 注意:正则表达式的*前面要加一个“.”,否则报错。 3....注意:通过这种设置后文本文件输入中字段选项无法自动获取字段。不过可以先不设置从前一步骤获取文件名,利用这个步骤的自身属性先获取字段,然后再设置。 4. “表输出”如下面两图所示。 ? ?

3.3K10
  • java获取文件名乱码_java导出文件名中文乱码

    Java读linux系统文件文件名乱码的解决办法 1,问题描述 web应用想通过Java读取linux系统文件显示到web页面上,结果中文文件名出现乱码?...问题场景描述:当用户通过浏览器访问tomcat服务器,请求查看某一路径下文件列表信息,tomcat的web应用调用getFilesByPath(String path)方法读取文件列表信息响应请求,页面中文文件名出现乱码...Date(f.lastModified())); fileInfo.setDir(f.isDirectory()); } return fileList; } 当将读取文件信息显示到web页面上时,中文文件名出现乱码.../** * 根据path路径查找出该路径下可视文件列表 * @param path * @return */ public List getFilesByPath(String path){ //获取系统编码...路径查找出该路径下可视文件列表 * @param path * @return */ public List getFilesByPath(String path) throws Exception{ //获取系统编码

    3.1K20

    Nodejs进阶:基于express+multer的文件上传

    基础例子:借助express、multer实现单图、多图上传。 常用API:获取上传的图片的信息。 进阶使用:自定义保存的图片路径、名称。...获取上传的图片的信息 完整示例代码请参考这里。 很多时候,除了将图片保存在服务器外,我们还需要做很多其他事情,比如将图片的信息存到数据库里。...常用的信息比如原始文件名、文件类型、文件大小、本地保存路径等。借助multer,我们可以很方便的获取这些信息。...自定义本地保存的文件名 完整示例代码请参考这里。 代码稍微长一点,单同样简单。multer 提供了 storage 这个参数来对资源保存的路径、文件名进行个性化设置。...filename:设置资源保存在本地的文件名。 app.js。

    2.8K90

    Vue + Node.js 搭建「文件上传」管理后台

    [vue-uploads-files] 文件选择器、上传按钮、文件列表都已经可以显示出来了,但还无法上传。这是因为后端部分还没有跑起来,接下来,我带领大家手把手搭建上传文件的后端部分。...+ URL 我们构建的 Node.js Rest API 包含这三个功能: POST /upload 上传一个文件 GET /files 获取文件列表(文件名+URL) GET /files/[filename...配置 multer 为磁盘存储引擎。 destination:指向用于存储上传文件的文件夹。 filename:上传文件上传后的文件名。...中间件函数中) 返回信息 下载文件: 使用 getListFiles() 读取服务器上传文件夹中的所有文件,包含文件名和 URL 使用 download() 接收文件名作为输入参数,然后使用 Express...directoryPath + fileName, fileName, (err) => { if (err) { res.status(500).send({ message: "无法获取文件

    12.1K30

    Nodejs进阶:基于express+multer的文件上传

    基础例子:借助express、multer实现单图、多图上传。 常用API:获取上传的图片的信息。 进阶使用:自定义保存的图片路径、名称。 环境初始化 非常简单,一行命令。...获取上传的图片的信息 完整示例代码请参考这里。 很多时候,除了将图片保存在服务器外,我们还需要做很多其他事情,比如将图片的信息存到数据库里。...常用的信息比如原始文件名、文件类型、文件大小、本地保存路径等。借助multer,我们可以很方便的获取这些信息。...自定义本地保存的文件名 完整示例代码请参考这里。 代码稍微长一点,单同样简单。multer 提供了 storage 这个参数来对资源保存的路径、文件名进行个性化设置。...filename:设置资源保存在本地的文件名。 app.js。

    1.8K10
    领券