动态创建 zip 并将其流式传输到客户端

2023-12-27

我正在使用 NodeJs (w/express),并且尝试将 zip 文件流式传输回客户端。 zip 中包含的文件并不存在于文件系统中,而是动态创建的。我想将文件内容流式传输到 zip 并将 zip 流式传输回客户端。

IE。我希望客户收到:

tmp.zip
 --> 1.txt
 --> 2.txt
 --> 3.txt

其中 1,2,3.txt 是动态创建的并流式传输到 zip 文件。这可能吗?


Archiver https://github.com/ctalkington/node-archiver有一个追加方法,可让您将文本保存为文件。要将数据“流式传输”给用户,您只需通过管道传输到 HTTP 响应对象即可。

var Http = require('http');
var Archiver = require('archiver');

Http.createServer(function (request, response) {
    // Tell the browser that this is a zip file.
    response.writeHead(200, {
        'Content-Type': 'application/zip',
        'Content-disposition': 'attachment; filename=myFile.zip'
    });

    var zip = Archiver('zip');

    // Send the file to the page output.
    zip.pipe(response);

    // Create zip with some files. Two dynamic, one static. Put #2 in a sub folder.
    zip.append('Some text to go in file 1.', { name: '1.txt' })
        .append('Some text to go in file 2. I go in a folder!', { name: 'somefolder/2.txt' })
        .file('staticFiles/3.txt', { name: '3.txt' })
        .finalize();

}).listen(process.env.PORT);

这将创建一个包含两个文本文件的 zip 文件。访问此页面的用户将看到文件下载提示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态创建 zip 并将其流式传输到客户端 的相关文章

随机推荐

  • 滚动条没有出现?

    我正在为 Tumblr 开发主题 但由于某种原因滚动条没有出现 这是博客的网址 http infinitethemedewitt tumblr com 主题的代码可以通过右键单击在页面源代码中找到 除了 html 之外的所有代码 因为它被
  • fopen 不显示内容

    不知道为什么我的即时通讯页面出现空白 txt 中有数据 php 中没有错误 这是 txt Product txt ID OID Title Description Option Price 01 01JAP Japanese Mod
  • CarrierWave + RMagick 方形裁剪?

    我正在尝试使用 Ruby on Rails CarrierWave 和 RMagick 制作固定的方形图像裁剪 我尝试过以下两种方法 但没有运气 version thumb do process resize to fit gt 200 2
  • C# 十进制格式化查询

    我正在尝试格式化小数 以便它显示如下 14 5 应显示为 14 50 14 50 应显示为 14 50 14 05 应显示为 14 05 14 00 应显示为 14 是否可以使用单一字符串格式 即不使用条件格式 我尝试过 0 不满足第一个示
  • 水平滚动列表

    我希望将图像显示在水平列表中 这就是我到目前为止所做的 var list Ext create Ext List store store itemTpl new Ext XTemplate img src icon inline true
  • 设置解析注册的默认个人资料图片

    我试图在注册时在解析中设置默认的个人资料图片 该图片位于我的项目文件夹中 有什么办法可以设置不上传照片吗 var user new Parse User user set username username val user set pas
  • 在 HyperLedger Composer 查询中获取资产计数?

    我想在 HyperLedger Composer 中编写一个查询 返回我在超级账本中拥有的资产数量 我有数千条记录 我不想将它们全部获取并计算计数 数据传输会很慢 我希望查询返回计数 不幸的是 这儿没有count使用作曲家查询语言 您必须创
  • cocos2d 计算给定起点、角度和距离的目的地点

    我想快点吧 Cocos2d 和 xcode 中的 2d 问题 I have CGPoint currPoint float lineLength float angle 现在 我需要找到距离 currPoint 角度为 lineLength
  • 大量数据的数据库设计[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在开展一个项目 涉及来自美味网站的大量数据 可用数据为 日期 用户 ID 网址 标签 针对每个书签 我将数据库规范化为 3NF 并且由于我们
  • 是否需要“设置字符集utf8”?

    我正在重写我们的数据库类 基于 PDO 并陷入困境 我被教导要同时使用SET NAMES utf8 and SET CHARACTER SET utf8在 PHP 和 MySQL 中使用 UTF 8 时 在 PDO 中我现在想使用PDO M
  • PHP 日期比较

    如何检查 2008 02 16 12 59 57 格式的日期是否小于 24 小时前 if strtotime 2008 02 16 12 59 57 gt time 24 60 60 LESS
  • 如何确定 _POSIX_PATH_MAX 的系统值

    谁能告诉我如何找到系统值 POSIX PATH MAX在 Linux 薄荷中 我知道它在 文件中可用 但我不知道如何找到它的值 根据 POSIX 要使用的工具被命名为getconf http pubs opengroup org onlin
  • React Router Lazy 组件不起作用

    所以这有效 import Page from components Page render return
  • 有选择地将 C++ 核心逻辑暴露给 QML 的最佳方法

    我想设置特定 QML 组件的上下文属性 而不是在根上下文中 我不希望在组件外部访问该属性 C 有没有一种方法可以访问组件的上下文 只允许从组件的上下文中访问命名属性 而不是从全局命名空间中访问 我想保持 QML 声明性 而不是在 C 中创建
  • Seaborn 群图和点图躲避对齐

    有没有办法将点图的平均值 SEM 与相应的群图对齐 这是我的代码 import seaborn as sns import numpy as np import pandas as pd import matplotlib pyplot a
  • 如何在pyspark中自动删除常量列?

    我在 pyspark 中有一个 Spark 数据框 我需要从数据框中删除所有常量列 由于我不知道哪些列是常量 因此我无法手动取消选择常量列 即我需要一个自动过程 我很惊讶我无法在 stackoverflow 上找到简单的解决方案 Examp
  • 如何保持火车步骤之间的状态?

    我的计算图中有一个张量 我想在每个训练步骤之后添加一行 我怎样才能做到这一点 更详细 我正在获取渐变optimizer compute gradients 我想根据渐变历史修改这些渐变 这是我尝试使用的代码 def process grad
  • 使用 Charles 和 SSL Apple 推送地址

    我必须确认我的用于发送推送通知的 PHP 代码正在与代理一起使用 我安装了 Charles 并且可以通过代理 127 0 0 1 8888 观看我的所有网络流量 现在我想看看我的脚本是否可以正确用于推送通知 我有 stream contex
  • Python:多维数组(“矩阵”)与列表中的列表相同吗?

    我试图理解人们所说的矩阵和人们所说的列表中的列表之间的区别 它们是否相同 一旦创建 您就可以对它们执行相同的操作 在其中以相同的方式引用元素等 例子 在列表中创建列表 ListsInLists 1 2 3 4 5 6 制作多维数组 np r
  • 动态创建 zip 并将其流式传输到客户端

    我正在使用 NodeJs w express 并且尝试将 zip 文件流式传输回客户端 zip 中包含的文件并不存在于文件系统中 而是动态创建的 我想将文件内容流式传输到 zip 并将 zip 流式传输回客户端 IE 我希望客户收到 tmp