首页 > 解决方案 > 无法以某种格式上传文件 - Codeigniter 3

问题描述

我在具有不同目录的 code-igniter 3 中创建了一个上传表单。起初,我在每个文件输入中创建了 excel 和 PDF 格式的上传表单。但后来,我的老板让我在上传表单中添加图片/jpeg。我认为只需在允许的类型中添加 jpg 并在控制器中添加一些 max_size 就可以了。但是文件没有保存在数据库或文件夹路径中,它只保存 excel 和 PDF 格式,我试图更改用户文件但无济于事。没有显示错误,所以我现在有点困惑。我希望你能帮助我,因为我还在学习 Code-igniter。

控制器:

public function file_data() {        
    $this->load->view('templates/header');

    $data['program'] = $this->input->post('program');

    $this->load->library('form_validation');        
    $this->form_validation->set_rules('program', 'Program', 'trim|required');       
    $this->form_validation->set_rules('file_nilai', 'File Nilai', 'required');
    $this->form_validation->set_rules('file_absen', 'File Kehadiran', 'required');

    //$this->load->library('upload');

    $config['upload_path'] = './uploaded_files/laporan/absen';
    $config['allowed_types'] = 'jpg|jpeg|pdf';
    $config['max_size'] = '2048';

    $this->load->library('upload');
    $this->upload->initialize($config);
    if (!$this->upload->do_upload('file_absen')) {      
        $this->session->set_flashdata('file_error', 'File type tidak sesuai.');
        $this->load->view('guru/upload_form', $data);

    } else {
        $upload_data_absen = $this->upload->data();
        unset($config);

        $config['upload_path'] = './uploaded_files/laporan/nilai';
        $config['allowed_types'] = 'xls|xlsx|pdf|jpg|jpeg';
        $config['overwrite'] = FALSE;
        $config['max_size'] = '2048';

        $this->load->library('upload');
        $this->upload->initialize($config);
        if (!$this->upload->do_upload('file_nilai')) {              
            $this->session->set_flashdata('file_error', 'File type tidak sesuai.');
            $this->load->view('guru/upload_form', $data);   
        } else {
            $upload_data_nilai = $this->upload->data();

            //get the uploaded file name
            $data['file_absen'] = $upload_data_absen['file_name'];
            $data['file_nilai'] = $upload_data_nilai['file_name'];


            //store files data to the db
            $this->laporan_model->simpan_data($data);

            $this->session->set_flashdata('file_success', 'Upload File Berhasil!');
            redirect(base_url() . "guru/laporan_np");

        }
    }
    $this->load->view('templates/footer');
}

模型 :

function simpan_data($data){        
    $data_user=$this->session->userdata('username');
    $insert_data['guru']    = $data_user;       
    $insert_data['program']    = $data['program'];       
    $insert_data['file_nilai'] = $data['file_nilai'];
    $insert_data['file_absen']   = $data['file_absen'];             

    $query = $this->db->insert('berkas', $insert_data);
}

看法 :

 <?php echo form_open_multipart('guru/laporan_np/file_data');?>
    <div class="form-group">
	<label for="file_nilai">File Nilai <span style="color:#FF0000">*</span>:</label>
	<input type="file" name="file_nilai" class="form-control"  id="file_nilai" required> 
	<span><p>Allowed file types: <strong>xls, xlsx, jpeg, jpg</strong></p></span>
	<?php if ($this->session->flashdata('file_error')) { ?>
		<div class="alert alert-danger alert-dismissible" style="width:20%"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> <?= $this->session->flashdata('file_error') ?> </div>
	<?php } ?>
  </div>
  <div class="form-group">						
	<label for="file_absen">File Kehadiran <span style="color:#FF0000">*</span>:</label>
	<input type="file" name="file_absen" class="form-control"  id="file_absen" required> 
	<span><p>Allowed file types: <strong>pdf, jpeg, jpg</strong></p></span>
	<?php if ($this->session->flashdata('file_error')) { ?>
		<div class="alert alert-danger alert-dismissible" style="width:20%"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button><?= $this->session->flashdata('file_error') ?> </div>
	<?php } ?>
  </div>	
  <a href="<?=base_url(). 'guru/laporan_np';?>" class="btn btn-warning"><span class="fa fa-arrow-left"></span>&nbsp;Back</a>
  <button type="submit" class="btn btn-success"><span class="fa fa-save"></span>&nbsp;Submit</button>
</form>
<?php echo form_close(); ?>
</div>

标签: codeigniter-3image-uploading

解决方案


你必须改变这个

$this->load->library('upload');

$this->load->library('upload',$config);

也许它会为上传文件造成问题。

并使用一种配置。


推荐阅读