【发布时间】:2021-04-05 19:35:16
【问题描述】:
看看这个简单的代码
<?php
readfile('http://ovh.net/files/1Mio.dat');
?>
此代码和链接是示例。
我的服务器就像是一种代理一样工作。为用户显示远程原始文件。
我无法将文件下载到我的服务器,因为它太大了。 我无法保存到服务器,我无法对文件本身做任何事情。
我需要并在互联网上搜索了所有关于文件格式(zip、rar、tar、gzip 等)的文件格式,这些文件的原始代码非常简单,我可以向用户显示类似的东西。
echo "#filename,filesize";
readfile ($url1);
echo "#filename1,filesize1";
readfile ($url2);
所以用户得到一个像这样的原始文件
#file1.dat,12312
(rawdata of file)
#file2.dat,1232
(rawdata of file)
最后的文件,就像一个包含这两个文件的 zip 文件
我尝试了很多,但我没有得到任何满意的答案。
我找到的所有答案都是在服务器上下载文件所必需的。
它也不一定是 zip,任何其他可用的格式。 一种选择是简单地显示所有的整个文件,并留给用户使用文件拆分器将其拆分为多个部分,但这也不是一件友好的事情。
@编辑 也无法加载到内存中
【问题讨论】:
-
ZIP 和 RAR 是索引存档格式,具有压缩功能,但不可流式传输。 TAR 是一种可流式存档格式,但未压缩,而且我知道没有用于 PHP 的 TAR 流式传输器,我对自己编写感到厌烦。像 GZIP 这样的大多数压缩算法都是流压缩,所以没有真正的问题。理想情况下,您可能希望通过 GZIP 过滤器流式传输 TAR 存档,但这并不是一个有趣的时间,因为不存在 TAR 流式传输器。
-
@waterloomatt zip 是可流式传输的。
标签: php zip hex gzip ziparchive