为了账号安全,请及时绑定邮箱和手机立即绑定

在Codeigniter中上传多个文件

在Codeigniter中上传多个文件

PHP
哈士奇WWW 2019-10-12 10:19:10
我想使用单个元素上传多个文件。所以我尝试这个例子。使用CodeIgniter 2.0上传多个文件(数组)这是我的表格<form enctype="multipart/form-data" class="jNice" accept-charset="utf-8" method="post" action="http://xxxx.dev/admin/add_estates">                  <fieldset>                  <label>Title * : </label>                                   <input type="text" class="text-long" value="" name="title">            <label>Description : </label>                                   <textarea class="mceEditor" rows="10" cols="40" name="description"></textarea>            <label>Image : </label>                                 <input type="file" multiple="" name="images[]">                                         <button class="button-submit" type="submit" name="save" id="">Save</button>    </fieldset>         </form>这是我的控制器public function add_estates(){    $data['page_title'] = "&copy; IDEAL - Administrator - Real State - Add Real Estate";    $data['main_content'] = 'admin/add_estates';    if ($this->input->post() !== FALSE) {                   $this->load->library('form_validation');        $this->form_validation->set_rules('title', 'Career Title', 'trim|required');                   if ($this->form_validation->run() !== FALSE) {                            $title = $this->input->post('title');            $description = $this->input->post('description');            if (!empty($_FILES['images']['name'][0])) {                if ($this->upload_files($title, $_FILES['images']) === FALSE) {                    $data['error'] = $this->upload->display_errors('<div class="alert alert-danger">', '</div>');                }            }                               if (!isset($data['error'])) {                $this->admin_model->add_estate($title, $description, $image_name);                    $this->session->set_flashdata('suc_msg', 'New real estate added successfully');                 redirect('admin/add_estates');                }                  }    }但它给You did not select a file to upload.每一次。有什么问题
查看完整描述

3 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

我images[]根据@Denmark 更改上传方法。


    private function upload_files($path, $title, $files)

    {

        $config = array(

            'upload_path'   => $path,

            'allowed_types' => 'jpg|gif|png',

            'overwrite'     => 1,                       

        );


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


        $images = array();


        foreach ($files['name'] as $key => $image) {

            $_FILES['images[]']['name']= $files['name'][$key];

            $_FILES['images[]']['type']= $files['type'][$key];

            $_FILES['images[]']['tmp_name']= $files['tmp_name'][$key];

            $_FILES['images[]']['error']= $files['error'][$key];

            $_FILES['images[]']['size']= $files['size'][$key];


            $fileName = $title .'_'. $image;


            $images[] = $fileName;


            $config['file_name'] = $fileName;


            $this->upload->initialize($config);


            if ($this->upload->do_upload('images[]')) {

                $this->upload->data();

            } else {

                return false;

            }

        }


        return $images;

    }


查看完整回答
反对 回复 2019-10-12
?
慕后森

TA贡献1802条经验 获得超5个赞

private function upload_files($path, $title, $files)

{

    $config = array(

        'upload_path'   => $path,

        'allowed_types' => 'jpg|gif|png',

        'overwrite'     => 1,

    );


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


    $images = array();


    foreach ($files['name'] as $key => $image) {

        $_FILES['images[]']['name']= $files['name'][$key];

        $_FILES['images[]']['type']= $files['type'][$key];

        $_FILES['images[]']['tmp_name']= $files['tmp_name'][$key];

        $_FILES['images[]']['error']= $files['error'][$key];

        $_FILES['images[]']['size']= $files['size'][$key];


        $fileName = $title .'_'. $image;


        $images[] = $fileName;


        $config['file_name'] = $fileName;


        $this->upload->initialize($config);


        if ($this->upload->do_upload('images[]')) {

            $this->upload->data();

        } else {

            return false;

        }

    }

    return true;

}


查看完整回答
反对 回复 2019-10-12
  • 3 回答
  • 0 关注
  • 384 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信