Скачать папку zip на основе ввода формы - Codeigniter - PullRequest
0 голосов
/ 05 марта 2020

Я хочу создать форму поиска файла, в которой пользователь будет искать файлы на основе года. Я уже создал файл папки за годы (например, папка 2019, папка 2018 и т. Д. c), поэтому, когда пользователь вводит значение, результаты будут показать на основе ввода пользователя. Я получаю желаемый результат, но я не могу загрузить файл в виде zip-файла, потому что значение og path folder равно нулю. Я уже пытался использовать input-> get и session-> set_flashdata, но результат все еще нулевой. У меня вопрос, как я могу получить значение года, чтобы можно было направить в папку пути? Примечание: tahun - это годы по-английски sh

Контроллер

public function download_zip() {    
// Read files from directory
$tahun = $this->input->get('tahun');
if($this->input-post('but_createzip2') != NULL){
// File name
$filename = $tahun . _laporan.zip;
// Directory path (uploads directory stored in project root)
$path = './uploaded/laporan/'.$tahun.'/';

// Add directory to zip
$this->zip->read_dir($path, FALSE);

// Save the zip file to archivefiles directory
$this->zip->archive('./uploaded/backup_laporan/'. $filename);

// Download
$this->zip->download($filename);
}
// Load view
$this->load->view('v_detail_laporan');
}}

Просмотр

<form role="form" action="<?php echo base_url().'laporan'?>">
<input type = "text" id="tahun" name="tahun" class="form-control" placeholder="Masukkan Tahun" required/>
</form>
// Download 
<?php echo form_open('laporan/download_zip'); ?>

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

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

Вид:

<?php echo form_open('laporan/download_zip', ['method' => 'post', 'role' => 'form']); ?>
<?php echo form_hidden('but_createzip2','1');?>
<input type = "text" id="tahun" name="tahun" class="form-control" placeholder="Masukkan Tahun" required/>
<?php echo form_close(); ?>

Контроллер:

public function download_zip() {    
    // Read files from directory
    $tahun = $this->input->post('tahun');
    if($this->input-post('but_createzip2') != NULL){
        // File name
        $filename = $tahun . _laporan.zip;
        // Directory path (uploads directory stored in project root)
        $path = './uploaded/laporan/'.$tahun.'/';

        // Add directory to zip
        $this->zip->read_dir($path, FALSE);

        // Save the zip file to archivefiles directory
        $this->zip->archive('./uploaded/backup_laporan/'. $filename);

        // Download
        $this->zip->download($filename);
    }
    // Load view
    $this->load->view('v_detail_laporan');
}
0 голосов
/ 05 марта 2020

Вы отправляете данные, используя метод GET, тогда почему вы задали условие в методе POST

public function download_zip() {    
// Read files from directory
    $tahun = $this->input->get('tahun');

    if($this->input->get('tahun') != NULL){ // MODIFIED HERE YOU ARE PASSING VALUES USING GET METHOD 
    // File name
    $filename = $tahun ."_laporan.zip";
    // Directory path (uploads directory stored in project root)
    $path = './uploaded/laporan/'.$tahun.'/';

    // Add directory to zip
    $this->zip->read_dir($path, FALSE);

    // Save the zip file to archivefiles directory
    $this->zip->archive('./uploaded/backup_laporan/'. $filename);

    // Download
    $this->zip->download($filename);
    }
    // Load view
    $this->load->view('v_detail_laporan');
}

Попробуйте этот код

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