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);
});
相关推荐
墨白曦煜几秒前
智能体架构范式总结(React、Plan-And-Solve、Reflection)
前端·react.js·前端框架
qq_426003964 分钟前
多语言新增语种全量测试策略的测试范围
前端·javascript·python·自动化
frjc15 分钟前
Node.js 与 npm 极简安装教程
前端·npm·node.js
IMPYLH16 分钟前
HTML 的 <main> 元素
前端·html
深念Y18 分钟前
微服务抽取路线图:从胖单体到 ARM 集群
前端·arm开发·数据库·后端·微服务·云原生·架构
阮小贰29 分钟前
干支编码的确定性实现:节气切分 + 1000 条溯源断语(附 JS 源码)
开发语言·javascript·ecmascript
雪芽蓝域zzs35 分钟前
Vue3 + Vite本地模拟数据(读取 JSON 数据)
前端
亿元程序员37 分钟前
还有高手?用Shader让图片中的3D圆环转起来!
前端
灯澜忆梦39 分钟前
【基于GO的Web开发14】gin请求重定向
前端·后端·golang·gin
qq_4523962340 分钟前
第十一篇:《前端性能优化体系:从加载到交互的全链路》
前端·性能优化·交互