【问题标题】:Form upload the same file twice in uploads folder in codeigniter表单在codeigniter的上传文件夹中上传两次相同的文件
【发布时间】:2018-03-07 05:59:41
【问题描述】:

我正在尝试使用 ajax 上传图像,图像上传并正确存储到数据库中,它在上传文件夹中上传了两次。

if(!empty($_FILES)){
    $uploadconfig = array(
        'upload_path' => './uploads/',
        'allowed_types' => 'gif|jpg|png',
        'max_size' => '204800',
        'file_name'  => $_FILES['file']['name'],
        'encrypt_name' => TRUE
    );

    //print_r($uploadconfig); exit;

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

    if ( ! $this->upload->do_upload("file")) {
        echo "failed to upload file(s)";
    }
    $this->upload->initialize($uploadconfig);
    $this->upload->do_upload("file");
    $upload_data = $this->upload->data();
    $user_profile = $upload_data['file_name'];

    $data = array();
    $data['first_name'] = $this->input->post('xx_first_name');
    $data['last_name'] = $this->input->post('xx_last_name');
    $data['email'] = $this->input->post('db_email');
    $data['user_dob'] = $this->input->post('db_dob');
    $data['user_zip'] = $this->input->post('user_zip'); 
    $data['user_img'] = $user_profile;              
}

【问题讨论】:

  • 你已经使用了$this->upload->do_upload("file") twise。
  • 在你的镜像配置之后使用这行代码 {$this->upload->initialize($uploadconfig);}

标签: jquery html css codeigniter


【解决方案1】:

你已经两次使用$this->upload->do_upload("file")了。

试试这个:

if (!empty($_FILES)) {
    $uploadconfig = array(
        'upload_path' => './uploads/',
        'allowed_types' => 'gif|jpg|png',
        'max_size' => '204800',
        'file_name'  => $_FILES['file']['name'],
        'encrypt_name' => TRUE
    );

    $this->load->library('upload', $uploadconfig); // Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class
    // $this->upload->initialize($uploadconfig); // I thinks its not required because you have already done it in previous line.
    if (!$this->upload->do_upload("file")) {
        echo "Failed to upload file(s)";
        $upload_data  = array(); 
        $user_profile = $_FILES['file']['name'];
        // you will error reason here on `$this->upload->display_errors()`
    } else {
        $upload_data    = $this->upload->data();
        $user_profile   = $upload_data['file_name'];
    }

    $data = array();
    $data['first_name'] = $this->input->post('xx_first_name');
    $data['last_name']  = $this->input->post('xx_last_name');
    $data['email']      = $this->input->post('db_email');
    $data['user_dob']   = $this->input->post('db_dob');
    $data['user_zip']   = $this->input->post('user_zip'); 
    $data['user_img']   = $user_profile;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 2016-03-11
    • 2019-06-25
    • 1970-01-01
    • 2016-02-03
    • 2017-02-20
    • 2013-07-13
    相关资源
    最近更新 更多