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);
});
相关推荐
不良人龍木木1 小时前
sqlalchemy FastAPI 前端实现数据库增删改查
前端·数据库·fastapi
c1tenj21 小时前
Jedis,SpringDataRedis
前端
Code成立1 小时前
HTML5中IndexedDB前端本地数据库
前端·数据库·html5·indexeddb
Code成立2 小时前
最新HTML5中的文件详解
前端·html·html5
橙子家2 小时前
前端项目通过 Nginx 发布至 Linux,并通过 rewrite 配置访问后端接口
前端
PLM小助手3 小时前
鼎捷新一代PLM 荣膺维科杯 “2023年度行业优秀产品奖”
java·大数据·前端·人工智能·分布式·低代码·微服务
F-1253 小时前
关于 vue/cli 脚手架实现项目编译运行的源码解析
前端·javascript·vue.js
骨子里的偏爱3 小时前
uniapp与webview直接进行传值
前端·chrome·uni-app
A_cot3 小时前
HTML5全面知识点
前端·前端框架·html·html5