21xrx.com
2024-06-02 23:12:07 Sunday
登录
文章检索 我的文章 写文章
NodeJS文件上传和下载
2023-07-05 07:44:01 深夜i     --     --
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 来实现文件上传和下载功能非常方便,只需要引入相关模块和使用相应的方法即可。同时,也需要注意安全问题,对上传的文件类型和大小进行限制,防止恶意文件的上传和下载。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复