21xrx.com
2025-03-31 13:19:18 Monday
文章检索 我的文章 写文章
NodeJS文件上传和下载
2023-07-05 07:44:01 深夜i     21     0
NodeJS 文件上传 文件下载 服务器端 前端界面

Node.js 是一种非常流行的后端 JavaScript 运行环境,可以用来构建高性能的网络应用程序。在 Node.js 中,我们可以使用一些模块和库来实现文件上传和下载的功能。

文件上传是指将本地文件传输到服务器的过程。Node.js 提供了 multer 模块来处理文件上传,它可以帮助我们从表单文件域或者 ajax 请求中解析出上传的文件数据。以下是一个使用 multer 模块实现文件上传的例子:

const express = require('express');
const multer = require('multer');
const app = express();
const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.single('file'), function (req, res, next) {
 // req.file 是 `file` 文件的信息
 // req.body 将具有文本域数据,如果存在的话
 res.send('文件上传成功!');
});

在上面的代码中,我们在 Express 应用中创建了一个 post 接口 '/upload',使用 multer 模块的 upload.single 方法来处理单个文件上传,文件的信息将被存储在 req.file 中,可以在业务逻辑中对其进行处理。

文件下载是指将服务器上的文件传输到客户端的过程。Node.js 提供了 fs 模块来处理文件的读取和写入操作,我们可以通过读取文件流的方式来实现文件下载的功能。以下是一个使用 fs 模块实现文件下载的例子:

const express = require('express');
const fs = require('fs');
const app = express();
app.get('/download', function (req, res, next) {
 const filePath = 'path/to/your/file';
 const stat = fs.statSync(filePath);
 res.setHeader('Content-disposition', 'attachment; filename=' + fileName);
 res.setHeader('Content-type', 'application/octet-stream');
 res.setHeader('Content-length', stat.size);
 const file = fs.createReadStream(filePath);
 file.pipe(res);
});

在上面的代码中,我们在 Express 应用中创建了一个 get 接口 '/download',读取指定的文件并设置响应头,最后利用文件流将文件写入响应体中,实现文件下载的功能。

总的来说,使用 Node.js 来实现文件上传和下载功能非常方便,只需要引入相关模块和使用相应的方法即可。同时,也需要注意安全问题,对上传的文件类型和大小进行限制,防止恶意文件的上传和下载。

  
  

评论区