Reputation: 31
I'm trying to upload image in codeigniter, but I got problem in , $this->upload->do_upload('imgname'). if condition not execute, only elese execute and show error message is 'You did not selected file to upload'. but while remove the form upload in all code then it execute perfectly....
controller:
public function add_news()
{
$post = $this->input->post();
unset($post['submit']);
$this->load->model('Adminmodel','addNews');
if(!is_dir('uploads'))
{
mkdir(base_url().'uploads',0777,true);
}
if(!is_dir('uploads/news'))
{
mkdir('uploads/news',0777,true);
}
$config = [
'upload_path'=>'uploads/news',
'allowed_types'=>'png|jpg|jpeg|gif',
'encrypt_name'=>'0777',
];
$this->load->library('upload', $config);
if($this->upload->do_upload('newsimg'))
{
$data = $this->upload->data();
$file_path = base_url().'uploads/news/'.$data["raw_name"].$data["file_ext"];
$post['newsimg'] = $file_path;
//$this->revEdit->reg_info($id,$post);
$post['posted'] = date('d-m-Y');
$this->addNews->store_news($post);
$this->session->set_flashdata('newsAlert','Yeh! News Added Successfully.');
redirect('Admin/news');
}
else
{
$newsdata = $this->addNews->news_list();
$upload_error = $this->upload->display_errors();
$this->load->view('Admin/news',compact('upload_error','newsdata'));
}}
view:
<?=form_open('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>
<div class="row">
<div class="col-sm-12">
<div class="form-group">
<label>News Heading</label>
<?=form_input(['name'=>'title','class'=>'form-control','placeholder'=>'Enter News Title','value'=>set_value('title')])?>
</div>
<div class="form-group">
<label>News Details</label>
<?=form_textarea(['name'=>'body','class'=>'form-control','placeholder'=>'Enter News Body','value'=>set_value('body')])?>
</div>
<div class="form-group col-sm-3">
<div class="fileUpload btn btn-primary" data-toggle="tooltip" data-placement="top" title="PDF file only">
<span><i class="fa fa-cloud-upload" aria-hidden="true"></i> Select File <span id="Percentage" class="percentage text-center"></span></span>
<?=form_upload(['name'=>'newsimg','class'=>'upload','id'=>'file1','onchange'=>'loadPdf(event)'])?>
</div>
</div>
<div class="col-sm-12">
<div id="myProgress" class="progress">
<div id="myBar" class="bar progress-bar" role='progressbar'>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<?=form_reset('reset','Reset',['class'=>'btn btn-md btn-primary'])?>
<?=form_submit('submit','Post',['class'=>'btn btn-md btn-success'])?>
</div>
<?=form_close()?>
model:
public function store_news($array)
{
return $this->db->insert('tbl_news', $array);
}
Upvotes: 2
Views: 231
Reputation: 21
function upload_add($name) { $this->load->helper('form'); $config['upload_path'] = 'upload/add_image/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '30000'; $config['max_width'] = '102400'; $config['max_height'] = '76800'; $this->load->library('upload', $config); $this->upload->initialize($config); if (!$this->upload->do_upload($name)) { $data = array('msg' => $this->upload->display_errors()); } else { $data = array('msg' => "success"); $databasea['upload_data'] = $this->upload->data(); $this->load->library('image_lib'); return $databasea['upload_data']['file_name']; } return ''; }
Upvotes: -1
Reputation: 98
You need to use multipart/form-data for file uploading. So use form_open_multipart instead of form_open.
echo form_open_multipart('Admin/add_news');
Upvotes: 1
Reputation: 2971
you are not using enctype='multipart/form-data'
try this
<?=form_open_multipart('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>
Upvotes: 2
Reputation: 16436
You need to use form_open_multipart
instead of form_open
so that enctype
can be added in form
Change
<?=form_open('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>
to:
<?=form_open_multipart('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>
Upvotes: 1