Node.js实现文件下载

1.设置响应头:

使用 res.writeHead 设置适当的响应头,包括 Content-Type 和 Content-Disposition 以触发下载对话框。
2.创建文件读取流:

使用 fs.createReadStream 创建文件读取流,并通过 pipe 方法将其连接到响应对象 res,从而将文件内容发送给客户端。

javascript 复制代码
const express = require('express');
const path = require('path');
const fs = require("fs");
const router = express.Router();

router.get('/download/example.txt', function(req, res) {
    const filePath = path.join(__dirname, 'example.txt');
    
    // 设置响应头
    res.writeHead(200, {
      'Content-Type': 'application/octet-stream',
      'Content-Disposition': 'attachment; filename="example.txt"'
    });
    
    // 创建文件读取流并将其连接到响应对象
    const fileStream = fs.createReadStream(filePath);
    fileStream.pipe(res);
});
相关推荐
Cache技术分享1 分钟前
41. Java 在 `switch` 语句和 `if-then-else` 语句之间选择
前端·后端
知识中的海王7 分钟前
js逆向入门图灵爬虫练习平台 第四题学习
开发语言·前端·javascript
那年那棵树10 分钟前
【爬虫】网易云音乐评论数据爬取
javascript·爬虫·python
前端开发张小七15 分钟前
12.Python多线程:并发编程的核心利器
前端·python
jz_study20 分钟前
Swift项目实战
前端
_一条咸鱼_22 分钟前
Android Compose 框架原生集成深度剖析(六十一)
android·前端·设计
76756047922 分钟前
Vue 3 ref 源码方法解读:从使用到实现
前端·vue.js
平山23 分钟前
JavaScript 拷贝技术全解析:从浅拷贝到深拷贝
前端·javascript
TaLon24 分钟前
Binder机制原理与优缺点分析
前端
花开路口25 分钟前
前端工程化-测试jest
前端·javascript