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);
});
相关推荐
爱生活的苏苏14 分钟前
elementUI 表单验证-联动型校验
前端·javascript·elementui
tryCbest1 小时前
Linux使用Docker部署Node.js+Express+SQLite项目
docker·centos·node.js
一只小风华~2 小时前
Vue Router 路由元信息(meta)详解
前端·javascript·vue.js
*且听风吟2 小时前
html 实现鼠标滑动点亮横轴
前端·javascript·html
iCoding914 小时前
前端分页 vs 后端分页:技术选型
前端·后端·系统架构
mingtianyihou334 小时前
使用 Service Worker 限制请求并发数
前端
张可爱4 小时前
20251017-Vue2八股文整理(上篇)
前端
FanetheDivine4 小时前
ts中如何描述一个复杂函数的类型
前端·typescript
lightgis4 小时前
chrome中的axure插件提示无法不受支持
前端·chrome
速易达网络4 小时前
Vue3 原生移动应用开发来了
前端·javascript·css