使用codeigniter和filepond在数据库中插入多个图像

时间:2019-02-20 05:40:56

标签: php jquery html codeigniter

以下是我的控制者。在此,我使用两个if语句,一个用于多张图像,另一条用于精选图像。.我的图像很好地上传到了一个文件夹中,但是多个名称未插入数据库中 ......数据库中仅插入了一个文件名...

 public function uploadApi()
{

    if (isset($_FILES['userfile'])) {
        $config['upload_path']          = 'uploads/';
        $config['allowed_types']        = 'gif|jpg|png';
        $config['max_size']             = 200000;
        $config['max_width']            = 2024;
        $config['max_height']           = 1768;

        $this->upload->initialize($config);        
        $this->load->library('upload', $config);
        $this->upload->do_upload('userfile');
        $data = array( $this->upload->data()); 
        $this->m->update_post($data[0]['file_name']);   

    }
    if(isset($_FILES['userfile1'])) {
       $config['upload_path']          = 'uploads/';
       $config['allowed_types']        = 'gif|jpg|png';
       $config['max_size']             = 200000;
       $config['max_width']            = 2024;
       $config['max_height']           = 1768;

       $this->upload->initialize($config);        
       $this->load->library('upload', $config);
       $this->upload->do_upload('userfile1');
       $data = array( $this->upload->data());     
       $this->m->update_feature($data[0]['file_name']);   

   }
}

这是一个模型。

            #-Update images Post-#
 public function update_post($picture) {
$post = array(
    'post_images'=>$picture,
);  
$this->db
->where('post_status','draft')
->update('post',$post); 
return true; 
     }

public function update_feature($picture) {
$post = array(
    'post_featured_image'=>$picture,
);  
$this->db
        // ->set('post_created', 'NOW()', FALSE)

->where('post_status','draft')
->update('post',$post);
return true; 
}

filepond插件脚本

     FilePond.registerPlugin(
        FilePondPluginFileValidateSize,
        FilePondPluginImageExifOrientation,
        FilePondPluginImageCrop,
        FilePondPluginImageResize,
        FilePondPluginImagePreview,
        FilePondPluginImageTransform
        );    
    // Set default FilePond options
    FilePond.setOptions({
        // maximum allowed file size
        maxFileSize: '50MB',
        imagePreviewHeight: 100,
        imagePreviewWidth: 200,
        instantUpload: true,
        // crop the image to a 1:1 ratio
        imageCropAspectRatio: '1:1',
        // upload to this server end point
        server: {
            url: '<?php echo base_url() ?>Admin/uploadApi',
        }        
    });
   
    var pond = FilePond.create(document.querySelector('input[name="userfile"]'));
    var pond = FilePond.create(document.querySelector('input[name="userfile1"]'));
   
**This is a view ..**

  <form method="post" enctype="multipart/form-data" class="toggle-disabled" action="<?php echo base_url() ?>Admin/update_post1" id='ritesh'>
  
  <div class="col-md-6">
                          <div class="form-group">
                            <label>Upload images</label>
                            <input type="file" 
                            class="filepond"
                            name="userfile"
                            multiple
                            data-max-file-size="5MB"
                            data-max-files="50" data-validation="required extension" />   

                        </div>

                        <div class="form-group">
                            <label>Feature image</label>
                            <input type="file" 
                            class="filepond"
                            name="userfile1"                            
                            data-max-file-size="5MB"
                            data-validation="required extension"
                            />
                        </div>
                        
                        </form>

2 个答案:

答案 0 :(得分:0)

要上传多张图片,您应该发布类似的图片数组; imagename []。您当前的方法不好。

您必须尝试已经发布的答案:

Multiple image upload with CodeIgniter

Multiple image upload with Codeigniter saving only one file path to MySQL Database

https://www.codexworld.com/codeigniter-upload-multiple-files-images/

答案 1 :(得分:0)

请尝试在控制器中执行此操作

.box {
  margin-left: 0;
  margin-right: 2%;

  @for $i from 1 through 4 {
      $sel: if($i == 1, &, selector-nest(#{$sel} #{'+'}, &)) !global;

      + #{$sel} {
        @if ($i % 2 == 0) {
          margin-left: 0;
          margin-right: 2%;
        } @else {
          margin-left: 2%;
          margin-right: 0;
        }
      }


  }
}