Node.js 中的文件上传

2025年2月26日 | 4 分钟阅读

在 Node.js 中上传文件可以通过使用中间件和各种包以多种方式完成。用于此过程的一些模块是 'multer'、'formidable'、'multiparty'、'busboy' 等。本文将讨论如何使用不同的模块在 Node.js 中上传文件。

1. 在 node.js 中使用 multer 模块

使用 multer 模块的步骤

  • 首先,我们创建一个名为 upload_file 的文件夹,并使用 'npm init' 初始化 package.js 文件。
  • 之后,使用命令 npm 安装 express multer 模块。
  • 接下来,在 upload_file 文件夹中创建一个 public 文件夹,并在 public 文件夹中创建一个 index.html 文件。
  • 现在,在主文件夹中创建一个 server.js 文件。
  • 使用命令 "node server.js" 运行应用程序。

Index.html

Server.js

输出

File upload in Node.js

表单提交后

File upload in Node.js

说明

在此示例中,导入所有必要的包,例如 express、multerpath,以处理文件上传及其命名。之后,为 multer 设置存储引擎,其中目标应为存储上传文件的文件夹,文件名应通过添加存储在目标文件夹中的原始文件名的日期和类型来更改。上传变量应使用文件限制进行初始化。之后,应检查文件类型。

在上述程序中,只存储类型为“jpeg”、“jpg”、“png”或“gif”的图像文件。如果文件是其他类型,将返回错误消息。之后,编写路由以处理文件上传的 POST 请求。如果文件有效,则正确上传;否则,显示错误消息。此服务器正在给定端口上运行。

界面使用“HTML”编写,其中包含一个表单,其中包含一个输入字段用于获取文件作为输入,以及一个用于提交文件以上传的按钮。

2. 在 Node.js 中使用 multiparty 库

使用 multiparty 模块的步骤

  • 首先,我们创建一个名为 upload_file 的文件夹,并使用 'npm init' 初始化 package.js 文件。
  • 之后,使用命令 'npm install express multiparty' 安装模块。
  • 接下来,在 upload_file 文件夹中创建一个 public 文件夹,然后在 public 文件夹中创建一个 index.html 文件。
  • 现在,在主文件夹中创建一个 server.js 文件。
  • 使用命令 "node server.js" 运行应用程序。

Index.js

Server.js

输出

文件上传界面

File upload in Node.js

终端输出

File upload in Node.js

说明

在此示例中,服务器程序通过导入所有必要的模块开始。之后,使用 express 创建一个 Web 浏览器,该浏览器应在 3000 端口上运行。接下来,将服务器配置为在 public 文件夹中提供静态文件。编写一个上传端点以侦听 POST 请求以上传文件。之后,解析传入请求以从字段中提取并上传文件,然后设置 multiparty 来处理上传。

文件处理是在将文件从临时位置上传到 uploads 文件夹之前完成的。成功上传后,应向客户端发送一条成功消息,其中包含查看上传文件的链接。