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);
});
相关推荐
幸福摩天轮18 分钟前
function Calling工具系统怎么实现
前端
Jul1en_38 分钟前
【Claude Code Compact】源码级别的学习上下文压缩
java·前端·学习·github·ai编程
windliang44 分钟前
Claude Code 源码分析(五):一次 Tool 调用怎样通过权限检查
前端·人工智能·面试
fengci.1 小时前
Microweber CMS 未授权路径穿越漏洞(CVE-2026-65694)
android·开发语言·前端·学习·php
Deryck_德瑞克1 小时前
【Nginx】配置差异分析
服务器·前端·nginx
前端 贾公子1 小时前
第06章:结构化输出 (上)
java·服务器·前端
北斗落凡尘1 小时前
React面试题
前端
张元清1 小时前
React useDisclosure Hook:管理模态框和抽屉的打开关闭状态 (2026)
javascript·react.js
一棵白菜2 小时前
mac 部署 n8n
前端
学高数就犯困2 小时前
React:常见的性能优化手段
前端·react.js