图像名称不保存在CodeIgniter 3中的数据库中

时间:2017-11-17 08:31:46

标签: php codeigniter

嗨朋友在我的代码图片中上传了我的文件夹,但它没有保存在数据库中我不知道CI,所以帮助我这个

查看上传图片的代码,

<form role="form" method="post" enctype="multipart/form-data">

   <fieldset class="form-group">                                            
       <input type="hidden" name="txt_hidden" value="" class="form-control"> 
   </fieldset>

   <fieldset class="form-group">
        <label class="control-label" for="formGroupExampleInput">Add Main Caregory</label>
        <input type="text" value="<?php echo set_value('p_name'); ?>" placeholder="Main Category" name="p_name" class="form-control"> 
   </fieldset>

   <fieldset class="form-group">
         <label class="control-label"  for="formGroupExampleInput2">Order</label>
         <input type="text" name="order_id" placeholder="Order Id" value="<?php echo set_value('order_id'); ?>" class="form-control" id="formGroupExampleInput2"> 
   </fieldset>

   <fieldset class="form-group">
         <label class="control-label"  for="formGroupExampleInput2">Status ( 0 active , 1 inactive)</label>
         <input type="text" name="status" placeholder="Status" value="<?php echo set_value('status'); ?>" class="form-control" id="formGroupExampleInput2"> 
   </fieldset>

   <fieldset class="form-group">
          <label class="control-label"  for="formGroupExampleInput2">Image</label>
          <input type="file" name="image" placeholder="Category Image" value="<?php echo set_value('image'); ?>" class="form-control" id="formGroupExampleInput2">
   </fieldset>                                              

   <div class="form-group">
          <button type="submit" class="btn btn-primary">Add Category</button>
   </div>
</form>

在我的控制器中

使用此功能添加带图像的类别

function add_main_category()
{

 $this->form_validation->set_rules('p_name', 'Main Category', 'required|is_unique[main_category.p_name]');
 $this->form_validation->set_rules('order_id', 'Order Id');
 $this->form_validation->set_rules('status', 'Status');
 $this->form_validation->set_rules('image', 'Category Image', 'callback_cat_image_upload');

      if ($this->form_validation->run() == FALSE)
      {
           $this->load->view('master/add_main_category');
      }
      else
      {
           $p_name = strtolower($this->input->post('p_name'));
           $order_id = strtolower($this->input->post('order_id'));
           $status = strtolower($this->input->post('status'));
           $image = strtolower($this->input->post('image'));
           $data = array(
                        'p_name' => $p_name,
                        'order_id' => $order_id,
                        'status' => $status,
                        'image' => $image
                  );
           $insert = $this->m->CategoryAdd($data);
           if($insert){
                 $this->session->set_flashdata('success_msg','Category Created Successfully!!');
            }
            else{
                 $this->session->set_flashdata('error_msg', 'Failed to delete Category');
            }
            redirect('admin/main_cat');

       }
}

并且用于图片上传在控制器中使用它

function cat_image_upload(){
  if($_FILES['image']['size'] != 0){
    $upload_dir = './uploads/';
    if (!is_dir($upload_dir)) {
         mkdir($upload_dir);
    }   
    $config['upload_path']   = $upload_dir;
    $config['allowed_types'] = 'gif|jpg|png|jpeg';
    $config['file_name']     = 'userimage_'.substr(md5(rand()),0,7);
    $config['overwrite']     = false;
    $config['max_size']  = '5120';

    $this->load->library('upload', $config);
    if (!$this->upload->do_upload('image')){
        $this->form_validation->set_message('cat_image_upload', $this->upload->display_errors());
        return false;
    }   
    else{
        $this->upload_data['file'] =  $this->upload->data();
        return true;
    }   
}   
else{
    $this->form_validation->set_message('cat_image_upload', "No file selected");
    return false;
}

}

列图像中的main_category

一切正常,数据库中只保存图像名称!

帮助我。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您无法以您使用的方式存储图像:

$image = strtolower($this->input->post('image'));

上传后获取图像文件名。这是您修改后的代码:

 if (!$this->upload->do_upload('image')){
    $this->form_validation->set_message('cat_image_upload', $this->upload->display_errors());
    return false;
}   
else{
    $this->upload_data['file'] =  $this->upload->data();
    $data = array('upload_data' => $this->upload->data());
    $doc_file_name = $data['upload_data']['file_name']; // Use this file name to store in database
    return true;
}