无法使用codeigniter在数据库表中插入多个图像的路径

时间:2016-01-08 01:26:12

标签: php codeigniter codeigniter-3

我似乎无法弄清楚如何使这个多图像路径上传工作。我一直试图修复它2天但没有运气。

问题:提交表单时,会上传选定数量的图片以上传'文件夹,但只在db表中插入一个图像的路径。

library(magrittr)
library(data.table)    
myDT <- as.data.table(mtcars)
temp <- 
    myDT %>%
    melt(id.vars = c('cyl', 'mpg', 'hp'), 
         measure.vars = c('vs','am','gear','carb'),
         variable.name = 'Data') %>%
    extract( value > 0) %>%
    extract( , value := NULL) %>% `[`

## Following which, this will print the first time
temp

模型是:

// Form Validation Goes Here
} else {
    // Image upload starts here
    $number_of_files = count($_FILES['uploadedimages']['tmp_name']);
    $files = $_FILES['uploadedimages'];
    for($i=0;$i<$number_of_files;$i++) {
      if($_FILES['uploadedimages']['error'][$i] != 0) {
    $this->form_validation->set_message('fileupload_check', 'At least 1 image needed.');
    return FALSE;
  }
}
    $this->load->library('upload');
    $config['upload_path'] = FCPATH . 'uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size']      = '0';
    $config['overwrite']     = FALSE;
    for ($i = 0; $i < $number_of_files; $i++) {
      $_FILES['uploadedimage']['name'] = $files['name'][$i];
      $_FILES['uploadedimage']['type'] = $files['type'][$i];
      $_FILES['uploadedimage']['tmp_name'] = $files['tmp_name'][$i];
      $_FILES['uploadedimage']['error'] = $files['error'][$i];
      $_FILES['uploadedimage']['size'] = $files['size'][$i];

      $this->upload->initialize($config);
      if ($this->upload->do_upload('uploadedimage')) {
    $data['uploadedimage'] = $this->upload->data();
    $image_name = $data['uploadedimage']['file_name'];
    $data['uploadedimage'] = $image_name;
  } else {
    $this->form_validation->set_message('upload_error', $this->upload->display_errors());
    return FALSE;
  }
}
$this->load->model('admin/model_users');
if($query = $this->model_users->insert_property_details($data)) {
redirect('dashboard/property-successfully-posted');
}

视图文件中的字段名称是&#39; uploadedimage&#39;。

        $insert_images = array(
        'property_images' => $data['uploadedimage'],
        'property_ref_id'   => $id,
        );
        $this->db->insert('vbc_property_images', $insert_images);

3 个答案:

答案 0 :(得分:0)

  1. $ data [&#39; uploadedimage&#39;] = $ image_name; 替换为
  2. $ data [&#39; uploadedimage&#39;] [] = $ image_name;

答案 1 :(得分:0)

$ data ['uploadedimage']应该在foreach($ data ['uploadedimage']作为$ key ==&gt; $ val)循环中读取多个数据。并使用'property_images'=&gt;插入数据的$ val

答案 2 :(得分:0)

我能够通过替换控制器来实现它:

if ($this->upload->do_upload('uploadedimage')) {
    $data['uploadedimage'] = $this->upload->data();
    $image_name = $data['uploadedimage']['file_name'];
    $data['uploadedimage'] = $image_name;
}

通过

if ($this->upload->do_upload('uploadedimage', $i)) {
    $data['uploadedimage'] = $this->upload->data();
    $image_name[$i] = $data['uploadedimage']['file_name'];
    $data['images'] = implode(',',$image_name);
}

在模特中:

'property_images' => $data['uploadedimage'],

通过

'property_images' => $data['images'],
相关问题