我正在使用它来创建即时压缩和从亚马逊存储桶交付文件:
例如,这可以传递给文件:index.php?q=movie1.m4v|movie2.m4v
我用过这个:http ://pablotron.org/software/zipstream-php/效果很好。
但是下面的代码不起作用:
require 'zipstream.php';
$q = $_GET["q"];
$files = explode("|", $q);
foreach ($files as $i) {
$zip->add_file_from_path($files[i], "http://[amazon bucket link here]" + $files[i]);
}
$zip->finish();
但这不起作用。它给了我一个空的 zip 文件。
当我手动执行此操作时,它可以正常工作:
$zip->add_file_from_path('movie1.m4v', 'http://[amazon bucket]/movie1.m4v');
我相信标题是在读取查询字符串之前发送的,这会弄乱我的 php 文件中的以下代码,对吗?我该如何解决这个问题?
谢谢
现在解决的应该是 $files[$i] 和 . 用于串联。不是 $files[i] 和 + 。Javascript 编码习惯让我很困惑
工作版本:
$q = $_GET["q"];
$files = explode("|", $q);
# load zipstream class
require 'zipstream.php';
$zip = new ZipStream('download.zip');
for ($i = 0; $i < count($files); ++$i) {
$zip->add_file_from_path($files[$i], "http://[amazon bucket]" . $files[$i]);
}
$zip->finish();