У меня есть страница, где пользователи могут выбирать, какие файлы они хотят скачать с разных заданий. Может быть несколько файлов для каждой работы. Когда форма отправлена, файлы отправляются в функцию, которая должна сжать их в разные папки заданий, а затем сжать всю партию и загрузить ее.
Все работает отлично, за исключением того, что когда я захожу в каждую папкув загруженном zip-файле он показывает, что там есть массив, но он пуст. Я не уверен, что я делаю неправильно.
Вот функция:
public function downloadDocFiles() {
$postdata = $this->input->post();
$this->load->library('zip');
$this->load->library('awss3', null, 'S3');
foreach ($postdata['files'] as $key => $value) {
$d = $this->S3->readFile('uploads/' . $key . '/' . $value, true);
$this->zip->add_data($key . '/' . $value, $d);
}
$this->zip->download('Completed Jobs.zip');
}
Данные поступают как:
Array
(
[files] => Array
(
[3454] => Array
(
[0] => file1.docx
[1] => file2.docx
)
[2711] => Array
(
[0] => nameoffile.docx
)
[1162] => Array
(
[0] => zyx3.docx
[1] => iure8.docx
)
)
)
Файл,Завершенный Jobs.zip загружен, и в нем есть папки (3454, 2711 и 1162), но эти папки просто содержат «Массив», размер 0.