首页 > 解决方案 > 在 Codeigniter 中多次上传的表单中未选择文件

问题描述

所以我尝试制作一些上传表格来上传一些图片。但是当图像选择然后按钮提交点击结果说“你没有选择要上传的文件”。

我使用 php,带有 codeigniter 框架

风景

<form class="text-left" enctype="multipart/form-data" method="post" action="<?= base_url('aduan/add'); ?>">
<div class="form-group">
                        <label>Upload Foto Bukti Aduan</label>

                        <div class="form-group">
                            <label>Bukti Aduan 1</label>
                            <input class="form-control-file" type="file" id="bukti1" name="bukti_aduan1" />
                            <?= form_error('bukti_aduan1', '<p class="text-danger font-weight-bold pl-2">', '</p>'); ?>
                        </div>

                        <div class="form-group">
                            <label>Bukti Aduan Pelapor di Lokasi</label>
                            <input class="form-control-file" type="file" id="bukti2" name="bukti_aduan2" />
                            <?= form_error('bukti_aduan2', '<p class="text-danger font-weight-bold pl-2">', '</p>'); ?>
                        </div>
                    </div>

哪个视图将为输入功能运行控制器“aduan”

控制器文件:

    $aduan = $this->aduan_model;
        $validation = $this->form_validation;
        $validation->set_rules($aduan->rules());

        if ($validation->run()) {
            $aduan->tambah();

            $this->session->set_flashdata('success', 'Berhasil disimpan');

            $data['title'] = 'Buat Aduan Kasus Lingkungan';
            $this->load->view('home/home_header', $data);
            $this->load->view('home/aduansukses');
            $this->load->view('home/home_footer');
        } else {
            $data['aduan'] = $this->aduan_model->getAll();
            $data['title'] = 'Buat Aduan Kasus Lingkungan';
            $this->load->view('home/home_header', $data);
            $this->load->view('home/buataduan');
            $this->load->view('home/home_footer');
        }

然后控制器将加载一个模型“aduan_model”

模型文件:

public function tambah()
    {
        $post = $this->input->post();

        $this->nik_pelapor = $post["nik_pelapor"];
        $this->nama_pelapor = $post["nama_pelapor"];
        $this->email_pelapor = $post["email_pelapor"];
        $this->telp_pelapor = $post["telp_pelapor"];
        $this->alamat_pelapor = $post["alamat_pelapor"];
        $this->aduan = $post["aduan"];
        $this->bukti_aduan1 = $this->_uploadImage();
        $this->bukti_aduan2 = $this->_uploadImage2();
        $this->status_aduan = 'Dalam proses';
        $this->tgl_aduan = time();
        $this->db->insert($this->_table, $this);
    }
private function _uploadImage()
    {
        $config['upload_path']          = './uploads/';
        $config['allowed_types']        = 'gif|jpg|png|jpeg';


        // $config['max_width']            = 1024;
        // $config['max_height']           = 768;

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

        if ($this->upload->do_upload('bukti_aduan1')) {
            return $this->upload->data();
        }

        return "default.jpg";
    }
    private function _uploadImage2()
    {
        $config['upload_path']          = './uploads/';
        $config['allowed_types']        = 'gif|jpg|png|jpeg';


        // $config['max_width']            = 1024;
        // $config['max_height']           = 768;


        $this->load->library('upload', $config);
        if ($this->upload->do_upload('bukti_aduan2')) {
            return $this->upload->data();
        }

        return "default.jpg";
    }

我希望图像的输出可以存储在文件上传中并插入数据库中,但它没有选择任何文件

请帮忙 :)

标签: phpfilecodeigniterupload

解决方案


试试我的代码

替换控制器中的 if 条件以上传

if(
    (!$this->upload->do_upload('bukti_aduan2')) && 
    (! $this->upload->do_upload('bukti_aduan1'))
)
{
echo "failed";
}
else
{
    echo "success";
}

推荐阅读