2

有关的:

我正在寻找其他主题中描述的方法的组合。我可能需要以小块读取文件(从 URL) ,将它们通过管道传输到 proc_open zip 命令的 STDIN,获取输出并将其刷新到客户端。

我需要做什么:

  • 从存储服务器的 URL 读取文件流
  • 在网络服务器上即时压缩
  • 使用未知大小的内容配置将其作为下载提供到网络浏览器(毕竟它是一个流)。

我不能做的:

  • 在网络服务器上存储文件
  • 在存储服务器上运行代码
  • 使用大量内存
  • 让客户端等待下载

因此,数据的刷新需要在远程块读取仍在进行中时开始。

这在PHP中可能吗?我觉得这在提供更多回调/异步功能的语言中会容易得多,但在这种情况下我坚持使用 PHP。

非常欢迎任何示例或一些粗略的代码!

4

1 回答 1

0

它不是 PHP,但这个项目完全符合您的要求。您可以将其作为独立服务器托管并从 php 调用它:

https://github.com/scosman/zipstreamer

于 2017-11-28T18:55:50.617 回答