Zipstream - PHP получает строку запроса перед выходными заголовками
Я использую это для создания архивирования на лету и доставки файлов из корзины Amazon:
Например, это можно передать в файл: 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->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();