Zip-файлы загрузки Codeigniter пустые - PullRequest
0 голосов
/ 15 октября 2019

У меня есть страница, где пользователи могут выбирать, какие файлы они хотят скачать с разных заданий. Может быть несколько файлов для каждой работы. Когда форма отправлена, файлы отправляются в функцию, которая должна сжать их в разные папки заданий, а затем сжать всю партию и загрузить ее.

Все работает отлично, за исключением того, что когда я захожу в каждую папкув загруженном 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.

1 Ответ

0 голосов
/ 15 октября 2019

Спасибо Омасу Аббасу за помощь.

Я изменил свой код на этот, и он заработал:

public function downloadDocFiles() {
    $postdata = $this->input->post();
    $this->load->library('zip');
    $this->load->library('awss3', null, 'S3');
    foreach ($postdata['files'] as $key => $value) {
        $count = count($postdata['files'][$key]);
        for ($i = 0; $i < $count; $i++) {
            $d = $this->S3->readFile('uploads/' . $key . '/' . $value[$i], true);
            $this->zip->add_data($key . '/' . $value[$i], $d);
        }
    }
    $this->zip->download('Completed Jobs.zip');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...