Express 中如何处理文件上传?

· 约 4 分钟读完 · 第 50 / 120 章

推荐答案

在 Express 中处理文件上传通常使用 multer 中间件。以下是一个简单的示例:

本题详细解读

1. 安装 multer

首先,你需要安装 multer 中间件:

2. 配置 multer

multer 提供了多种存储方式,最常见的是 diskStorage,它允许你将文件存储在服务器的磁盘上。你可以通过 destination 和 filename 两个选项来配置文件的存储路径和文件名。

  • destination: 指定文件存储的目录。
  • filename: 指定文件的名称。为了避免文件名冲突,通常会在文件名前加上时间戳。

3. 处理文件上传

在 Express 路由中使用 upload.single('file') 来处理单个文件上传。file 是表单中文件输入字段的 name 属性值。

4. 访问上传的文件

上传的文件信息可以通过 req.file 访问。req.file 包含以下属性:

  • fieldname: 表单中文件输入字段的 name 属性值。
  • originalname: 上传文件的原始名称。
  • encoding: 文件的编码类型。
  • mimetype: 文件的 MIME 类型。
  • size: 文件的大小(字节)。
  • destination: 文件存储的目录。
  • filename: 文件在服务器上的名称。
  • path: 文件的完整路径。

5. 处理多个文件上传

如果你需要处理多个文件上传,可以使用 upload.array('files', 10),其中 10 表示最多允许上传的文件数量。

6. 错误处理

multer 会自动处理文件上传过程中的错误。你可以通过中间件捕获这些错误并进行处理。

通过以上步骤,你可以在 Express 中轻松处理文件上传。