i'm new in codeigniter. have problem when upload multi file in codeigniter. upload form can upload multi files, resize , save them database, ok, 1 thing not ok : not display error. example: maximum file 2mb, choose file 3mb, it's not display message "the file attempting upload larger permitted size." same error when click button upload not choose file. view display image link. (i'm not enought reputation post images) https://drive.google.com/file/d/0b2zpqibkala6z2z6lxfrnxlvruk/view?usp=sharing
this controller:upload.php
private function _upload_files($field='userfile'){ $files = array(); foreach( $_files[$field] $key => $all ) foreach( $all $i => $val ) $files[$i][$key] = $val; $files_uploaded = array(); ($i=0; $i < count($files); $i++) { $_files[$field] = $files[$i]; if ($this->upload->do_upload($field)) $files_uploaded[$i] = $this->upload->data($files); else //$files_uploaded[$i] = null; $files_uploaded[$i] = $this->upload->display_errors(); } return $files_uploaded; } public function do_upload(){ $data['error']=""; $this->_data['loadpage']="upload/upload_view"; $this->load->model('mcategorie'); $this->_data["categories"] = $this->mcategorie->listallcate(); $this->load->model('malbum'); $this->_data['albums']=$this->malbum->listallalbum1(); $user_folder = './uploads/'.$this->session->userdata('username'); $thumb_folder = './uploads/'.$this->session->userdata('username').'/thumbnail/'; if(!is_dir($user_folder)){ mkdir($user_folder, 0777); } if(is_dir($user_folder)){ if(!is_dir($thumb_folder)) mkdir($thumb_folder,0777); } if($this->input->post("ok")){ $config['upload_path'] = $user_folder; $config['allowed_types'] = 'gif|jpg|png|jpeg'; $config['max_size'] = '2048'; $config['max_width'] = ''; $config['max_height'] = ''; $config['overwrite'] = false; $config['remove_spaces'] = true; $this->load->library("upload",$config); $this->load->library("image_lib"); if ($_files['image_list']) { $images_upload= $this->_upload_files('image_list'); //echo "<pre>"; //print_r($images_upload);exit; foreach($images_upload $data){ $config['image_library'] = 'gd2'; $config['source_image'] = './uploads/'.$this->session->userdata('username').'/'.$data['file_name']; $config['create_thumb'] = true; $config['new_image'] = './uploads/'.$this->session->userdata('username').'/thumbnail/'.$data['file_name']; $config['maintain_ratio'] = false; $config['width'] = 400; $config['height'] = 300; $this->image_lib->initialize($config); $this->image_lib->resize(); $file = array( 'name' => $data['raw_name'].$data['file_ext'], 'thumb_name' => 'thumb_'.$data['raw_name'].$data['file_ext'], 'date' => date("y-m-d"), 'userid' => $this->session->userdata('userid'), 'username' => $this->session->userdata('username'), 'description' => $this->input->post("description"), 'roleid' => $this->session->userdata("roleid"), 'public' => $this->input->post("kiet"), 'albumid' => $this->input->post("album"), 'categoryid' => $this->input->post("cat"), ); $this->mupload->insert_images($file); } redirect(base_url()."default/user/profile","refresh"); } } $this->load->view ( $this->_data['path'], $this->_data); } this view: upload_view.php
<div class="upload container col-xs-12 col-sm-12 col-md-12 col-lg-12"> <div class="panel panel-info"> <div class="panel-heading"><strong>upload files</strong> <small>sao bac dau photo sharing</small></div> <div class="panel-body"> <!-- standar form --> <form action="<?php echo base_url()."default/upload/do_upload"?>" method="post" enctype="multipart/form-data"> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6"> <label> chọn file ảnh cần upload (jpg, jpeg, gif, png) : </label> <div class="error col-xs-12 col-sm-12 col-md-12 col-lg-12 clear-css" style="color:#ff0081; font-weight: bold"> <?php if(isset($error)){echo $error; }?> </div> <div class="input-group"> <span class="input-group-btn" > <span class="btn btn-primary btn-file"> browse … <input type="file" multiple id="image_list" name="image_list[]" accept="image/*" > </span> </span> <input type="text" class="form-control" readonly> </div> <input type="submit" name="ok" class="btn btn-md btn-primary" value="upload photo" > </div> </form> </div> </div> should display error ? sorry if english bad. thank in advance help.
you store error in $files_uploaded[$i] = $this->upload->display_errors(); not use of display error need fetch error array , display on view.
please see below code.
<?php class upload extends ci_controller { function __construct() { parent::__construct(); $this->load->helper(array('form', 'url')); } function index() { $this->load->view('upload_form', array('error' => ' ' )); } function do_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); } } } ?>
Comments
Post a Comment