Почтовый индекс - PullRequest
       0

Почтовый индекс

0 голосов
/ 27 января 2020

Я новичок в использовании фреймворка CodeIgniter. Я создаю zip для скачивания. процесс был сделан. но после загрузки всплывающее окно. Это не показывает полное имя почтового индекса.

Ниже приведен код

Ниже приведен код контроллера.

            // Initialize archive object
            $zip = new ZipArchive();
            $zipFileName = $this->session->userdata('user_id')."-".$data['batch_name']."-".date("Ymd").".zip";

            $zip->open($zipFileName, ZipArchive::CREATE | ZipArchive::OVERWRITE);

                    // Create recursive directory iterator
                    // @var SplFileInfo[] $files 
            $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($rootPath),RecursiveIteratorIterator::LEAVES_ONLY);

            foreach ($files as $name => $file){

                        // Skip directories (they would be added automatically)
                if (!$file->isDir()){

                            // Get real and relative path for current file
                    $filePath = $file->getRealPath();
                    $relativePath = substr($filePath, strlen($rootPath) + 1);

                            // Add current file to archive
                    $zip->addFile($filePath, $relativePath);

                }

            }

                    // Zip archive will be created only after closing object
            $zip->close();

                    // or however you get the path
            $yourfile = FCPATH.$zipFileName;

            $file_name = basename($yourfile);

            header("Content-Type: application/zip");
            header("Content-Disposition: attachment; filename=$file_name");
            header("Content-Length: " . filesize($yourfile));

            readfile($yourfile);

            // unlink($yourfile);

            // delete_files(FCPATH.'assets/files/downloads/'.$this->session->userdata('user_id').'/sapFormat', TRUE);

    }

выход в изображении.

Output image.

Что должно быть.

enter image description here

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

Ответы [ 2 ]

1 голос
/ 27 января 2020

Необходимо заключить имя файла в двойные кавычки.

Например, вывод должен выглядеть следующим образом:

Content-Disposition: attachment; filename="1-PATCH BSAM-20200127.zip"

С переменной должно работать следующее:

header("Content-Disposition: attachment; filename=\"$file_name\"");
1 голос
/ 27 января 2020

Измените

header("Content-Disposition: attachment; filename=$file_name");

на

header('Content-Disposition: attachment; filename="'.$file_name.'"');

, поскольку у вас есть специальные символы в вашем $filename, например, пробел и c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...