Express.js 上传文件指南

阅读时长 4 分钟读完

在 web 应用程序中,上传文件是一项非常基本的功能。在 Express.js 中,我们可以使用官方插件或第三方库来实现上传文件的功能。在本篇文章中,我们将会介绍如何使用 multer 库来在 Express 应用程序中实现文件上传功能。

Multer 指南

Multer 是一个 Node.js 中间件,用于处理 multipart/form-data 类型文件的数据。它可以在 Express 中轻松处理文件上传,同时还能提供许多可定制的选项。Multer 主要用于解析数据并把数据储存到指定的目录。

安装 Multer

要使用 Multer,首先需要在项目中安装该包。可以使用 npm 或 yarn 进行安装。

Multer 基础用法

要使用 Multer 处理文件上传,需要在 Express 中配置 multer 中间件。要通过表单提交文件,请使用 <input type="file"> 标签。当上传表单被提交时,Multer 将会处理请求并把数据保存到指定的目录中。

让我们看一个简单的示例,其中上传文件将会保存到 uploads 目录中:

-- -------------------- ---- -------
----- ------- - ------------------
----- ------ - -----------------

----- --- - ---------
----- ------ - -------- ----- ---------- --

------------------- ---------------------- ----- ---- -- -
  -------------------
--

---------------- -- -- -
  ---------------------
--

在上面的示例中,我们创建了一个 express 应用程序,然后使用 Multer 配置中间件来处理文件上传。

注意 upload.single() 方法中的参数,这里参数的名称是表单中的文件字段名称。在这种情况下,我们使用的是 <input type="file" name="file"> 标签,因此参数名称为 file

Multer 高级选项

Multer 提供了许多可定制的选项,以便我们根据自己的需求进行配置。在下面的示例中,我们将会使用一些常用的高级选项:

-- -------------------- ---- -------
----- ------- - ------------------
----- ------ - -----------------

----- --- - ---------

-- -- ------ ---
----- ------ - --------
  -------- --------------------
    ------------ -------- ----- ----- --- -
      -------- -----------
    --
    --------- -------- ----- ----- --- -
      -------- ------------------
    -
  ---
  ----------- -------- ----- ----- --- -
    -- ----- --- - --- -----
    -- -------------- --- ------------ -- ------------- --- ------------ -
      ------ ------ ------------ --- - --- --------
    -
    -------- -----
  -
--

------------------- ---------------------- ----- ---- -- -
  -------------------
--

---------------- -- -- -
  ---------------------
--

在上述示例中,我们调整了 Multer 的高级选项。我们使用了磁盘存储引擎来配置我们之前创建的 uploads 文件夹。此外,我们还设置了文件名选项,用于为每个上传的文件设置唯一的文件名。

我们还使用了 fileFilter 选项,该选项用于限制用户可以上传的文件类型。在这种情况下,我们只允许上传 image/jpegimage/png 格式的文件。如果一个不支持的文件类型上传了,就会返回一个错误给用户。

结论

在本篇文章中,我们介绍了如何使用 Multer 在 Express.js 中上传文件。我们展示了 Multer 的基础用法以及一些高级选项,以便您可以根据自己的需求进行配置。Multer 是 Node.js 中使用文件上传的最佳选择之一,我们强烈建议您将其添加到您的 Express.js 应用程序中。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/675148a78bd460d3ad881028

纠错
反馈