I've been trying to upload images to specific folder my scenario is I've upload controller in which I've do_upload function
public function do_upload($field_name) {
$field_name = 'image_title';
$page_id = $this->input->post('page_id');
$config = array(
'allowed_types' => '*',
'max_size' => '1024',
'max_width' => '1024',
'max_height' => '768',
'upload_path' => './uploads/'. $page_id
);
$this->load->library('upload');
$this->upload->initialize($config);
if (!is_dir('uploads'))
{
mkdir('./uploads/', 0777, true);
}
$dir_exist = true; // flag for checking the directory exist or not
if (!is_dir('uploads/' . $page_id))
{
mkdir('./uploads/' . $page_id, 0777, true);
$dir_exist = false; // dir not exist
}
else{
}
if (!$this->upload->do_upload($field_name)) {
if(!$dir_exist)
rmdir('./uploads/' . $page_id);
$this->data['error'] = array('error' => $this->upload->display_errors());
} else {
$fInfo = $this->upload->data($field_name);
$this->_createThumbnail($fInfo['file_name']);
return $fInfo;
}
}
/**********************************************************************************************/
function _createThumbnail($filename)
{
$config['image_library'] = "gd2";
$config['source_image'] = "uploads/" .$filename;
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width'] = "80";
$config['height'] = "80";
$this->load->library('image_lib',$config);
if(!$this->image_lib->resize())
{
echo $this->image_lib->display_errors();
}
I've index view file given as
<section>
<?php echo validation_errors(); ?>
<?php //echo form_open_multipart('admin/upload/index/' . ((isset($page->id)) ? $page->id : '' )); ?>
<?php echo form_open_multipart('admin/upload/index/'); ?>
<tr>
<td><h3>Upload Images</h3></td>
</tr>
<table class="table table-striped">
<tr>
<thead>
<tr>
<th>Image Name</th>
<th>View</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
<?php if (count($images)): foreach ($images as $image): ?>
<tr>
<td><?php echo anchor('admin/upload/index/' . $image->id, $image->image_title); ?></td>
<td><?php echo btn_edit('admin/upload/index/' . $image->id); ?></td>
<td><?php echo btn_delete('admin/upload/index/' . $image->id); ?></td>
</tr>
<?php endforeach; ?>
<?php else: ?>
<tr>
<td colspan="3">There is no Image to display</td>
</tr>
<?php endif; ?>
</tbody>
</table>
</section>
<section>
<table class="table table-striped">
<tbody>
<tr>
<td><h5>Select Page</h5></td>
<td><?php echo form_dropdown('page_id', $get_with_images, $this->input->post('page_id')); ?></td>
</tr>
<tr>
<td><h5>Select Image</h5></td>
<td>
<?php echo form_upload('image_title', set_value('image_title', $image->image_title)); ?>
</td>
</tr>
<tr>
<td><?php echo form_submit('submit', 'Upload', 'class="btn btn-success"'); ?></td>
</tr>
</tbody>
</table>
<?php echo form_close(); ?>
</section>
dropdown is populating from page controller what actually I needed is I want to upload image to the page selected from dropdown for example if "Contact" page is selected from dropdown I want to upload my image to "Contact" page and on the backend I want to create directory with the same name as selected in dropdown in my case I want "uploads/home/abc.jpg" and same for the other pages please advice the basic idea I will modify it with my own