如何在codeigniter中上传2个单独的图像

she*_*bal 6 php ajax jquery codeigniter php-5.3

我想分别上传 2 张图片。我有一个条件,我需要上传文件,有时需要上传文件,有时只需要上传图像,我需要使用单独的按钮来区分图像和文件。

我的代码是

<form action="http://localhost/cod_login/club/test2" enctype="multipart/form-data" method="post" accept-charset="utf-8">
  <input type="file" name="userfile" size="20">
  <input type="file" name="userfile" size="20">
  <input type="submit" name="submit" value="upload">
</form>
Run Code Online (Sandbox Code Playgroud)

这是控制器

function ddoo_upload(){
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '100';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';

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

    if ( ! $this->upload->do_upload()) {
        $error = array('error' => $this->upload->display_errors());
        $this->load->view('upload_form', $error);
    } else {
        $data = array('upload_data' => $this->upload->data());
        $this->load->view('upload_success', $data);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 1

如果您想要 2 个不同的文件按钮,则需要给它们指定不同的名称。

<form action="" enctype="multipart/form-data" method="post" accept-charset="utf-8">
<input type="file" name="userfile1" size="20">
<input type="file" name="userfile2" size="20">
<input type="submit" name="submit" value="upload">
Run Code Online (Sandbox Code Playgroud)

您必须像ddoo_upload()下面这样修改您的函数:-

  function ddoo_upload($filename){
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '100';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';

    $this->load->library('upload', $config);
    if ( ! $this->upload->do_upload($filename)) {
        $error = array('error' => $this->upload->display_errors());
    return false;
    // $this->load->view('upload_form', $error);
    } else {
    $data = array('upload_data' => $this->upload->data());
    return true;
    //$this->load->view('upload_success', $data);
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:-我们$filename作为变量传递,而不是使用它来上传不同的文件。

现在在表单操作重定向的控制器中,您需要编写以下代码。

  if ($this->input->post('submit')){
    if (isset($_FILES['userfile1']) && $_FILES['userfile1']['name'] != ''){
        $file1 = $this->ddoo_upload('userfile1');
    }
        
    if (isset($_FILES['userfile2']) && $_FILES['userfile2']['name'] != ''){
        $file2 = $this->ddoo_upload('userfile2');
    }   
}
Run Code Online (Sandbox Code Playgroud)