当前位置: 首页 > 面试题库 >

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

濮波
2023-03-14
问题内容

我正在使用NodeJ(带有Express),并且试图将zip文件流式传输回客户端。zip中包含的文件不在文件系统上,而是动态创建的。我想将文件内容流式传输到zip并将流式传输回客户端。

IE浏览器,我希望客户端收到:

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

快速创建1,2,3.txt并将其流式传输到zip文件。这可能吗?


问题答案:

存档器具有一个append方法,使您可以将文本另存为文件。要将数据“流化”给用户,您可以简单地通过管道传递到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文件。访问该页面的用户将看到文件下载提示。



 类似资料:
  • 问题内容: 我想创建.zip文件,其中包含我从后端收到的压缩文件,然后将此文件发送给用户。两天来我一直在寻找答案,找不到合适的解决方案,也许你可​​以帮我:) 现在,代码是这样的:(我知道我不应该在spring控制器中做所有的事情,但是不要在意,它只是出于测试目的,找到使其工作的方法) 但是问题是,当我输入URL:localhost:8080 / zip时,使用代码得到的文件是:test.zip.

  • 问题内容: 我产生了以下孩子:我希望在客户端( 浏览器 )上 一个接一个地 而不是整体接收ping结果。 到目前为止,我已经尝试过了: 然后: 在这两种情况下,浏览器都将等待10次ping操作,然后将结果整体打印出来。我想让他们一个接一个,如何实现呢? (客户只是在拨打电话并用console.log记录结果) 编辑: 尽管我确实相信websockets是实现这一点所必需的,但我只是想知道是否还有其

  • 我有一个在远程服务器(debian linux)上运行的Java应用程序。该应用程序将运行时信息记录到文件中。 偶尔,支持人员需要使用客户端工具(不是在服务器上运行,而是在支持人员的桌面上运行)分析日志。然后,该工具需要远程访问 < li >服务器上的旧日志文件 < li >当前日志文件(实时增长) 我正在搜索一种良好的(=标准,灵活,安全,调试良好等)方式将这些过去和现在的日志消息流式传输到我的

  • 我正在尝试编写同时使用gRPC和REST的服务。实现技术有Java、Spring-Boot和gRPC。使用场景示例如下: 目的是有外部客户端可以通过RESTendpoint和/或通过进行gRPC调用与应用程序交互。在内部,有“网关”服务提供外部接口,并负责在外部客户端和执行实际工作的“域”服务之间传输/路由请求和响应。内部服务将通过gRPC进行通信。 外部客户端不知道如何在内部处理事情,域服务没有

  • 我想创建一个对象动态,例如在JavaFX中的一个圆。我的代码会像这样。 我现在的问题是如何增加每个圆的独特性。例如,如果我要添加每个圆的不同颜色和大小。我该如何实现呢?请帮忙。

  • 我想创建. zip文件,其中包含我从后端收到的压缩文件,然后将此文件发送给用户。两天来,我一直在寻找答案,但找不到合适的解决方案,也许你可以帮我:) 目前,代码是这样的:(我知道我不应该在spring控制器中完成所有工作,但不关心这一点,它只是为了测试目的,以找到使其工作的方法) 但问题是,使用的代码,当我输入URL:localhost:8080/zip我得到文件:test.zip.html而不是