【问题标题】:I am getting empty array, I need array of image while uploading multiple images in Codeigniter我得到空数组,在 Codeigniter 中上传多个图像时需要图像数组
【发布时间】:2020-07-10 00:59:00
【问题描述】:

此代码用于获取数组中的文件名。 我得到一个空的文件数组。 在这里,我附上了同一问题的源代码。 看看代码,给我一些解决方案

            $images = array();    

            $count = count($_FILES['files']['name']);

            for($i = 0; $i < $count ; $i++)
            {                 

                if(!empty($_FILES['file']['name'][$i]))
                {

                    $tmp = explode(".",$_FILES['files']['name'][$i]);
                    $file_extension = end($tmp); //this is temp variable

                    $imagename = time().".".$file_extension;                                    

                    // Define new $_FILES array - $_FILES['file']
                    $_FILES['file']['name'] = $_FILES['files']['name'][$i];
                    $_FILES['file']['type'] = $_FILES['files']['type'][$i];
                    $_FILES['file']['tmp_name'] = $_FILES['files']['tmp_name'][$i];
                    $_FILES['file']['error'] = $_FILES['files']['error'][$i];
                    $_FILES['file']['size'] = $_FILES['files']['size'][$i];

                    // Set preference
                    $config['upload_path'] = './uploads/'; 
                    $config['allowed_types'] = 'jpg|jpeg|png|gif';   // this is allowed file type                 
                    $config['file_name'] = $imagename;

                    //Load upload library
                    $this->load->library('upload',$config);                                                     
                    if($this->upload->do_upload('file')){
                        // Get data about the file
                        $uploadData = $this->upload->data();
                        $filename = $uploadData['file_name'];

                        // Initialize array
                        array_push($images, $filename);
                    }                    
                }
            }
            echo "<pre>";print_r($images);die;

这里我也附上表单代码

 <?php $attributes = array(
 "class"                 => "form-horizontal m-t-20",
 "method"                => "post",
 "novalidate"            => "",
 "enctype"               => "multipart/form-data"
 );
 echo form_open('admin/user/adduser', $attributes); ?>

This code for file input
<label for="file">Profile Images*</label>
<input type="file" name="files[]" id="file" multiple required placeholder="Profile Images" class="form-control">

【问题讨论】:

  • 添加您的输入表单代码..
  • 你能成功上传文件吗?但是,您可以通过'./uploads/'.$imagename 获取文件名
  • 不,文件没有上传

标签: php file codeigniter


【解决方案1】:

换行

if(!empty($_FILES['file']['name'][$i]))

if(!empty($_FILES['files']['name'][$i]))

【讨论】:

    【解决方案2】:

    files 更改为files[]。你可以阅读更多here

    建议

    将此行$this-&gt;load-&gt;library('upload',$config) 移出循环,因为每次迭代 CI 都会尝试加载已加载的上传库。这可能会影响网站的性能。你可以使用initialize()函数。

    【讨论】:

      猜你喜欢
      • 2016-11-12
      • 2020-07-10
      • 2017-05-06
      • 2014-04-27
      • 1970-01-01
      • 2022-07-24
      • 2018-11-09
      • 2012-12-06
      • 1970-01-01
      相关资源
      最近更新 更多