Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 上传文件时,我只得到数组中的第一个图像,我想要数组中的所有图像。使用Codeigniter_Php_File_Codeigniter - Fatal编程技术网

Php 上传文件时,我只得到数组中的第一个图像,我想要数组中的所有图像。使用Codeigniter

Php 上传文件时,我只得到数组中的第一个图像,我想要数组中的所有图像。使用Codeigniter,php,file,codeigniter,Php,File,Codeigniter,这里我附上欲望问题的代码。 Cotroller具有以下代码。 控制器=> //Load upload library $this->load->library('upload'); $images = array(); $i = 0; foreach ($_FI

这里我附上欲望问题的代码。 Cotroller具有以下代码。 控制器=>

//Load upload library
            $this->load->library('upload');
            $images = array();
            $i = 0;                                                                 
            foreach ($_FILES as $key => $value) 
            {                                                                
                $tmp = explode(".",$value['name'][$i]);                
                $imagename = time().".".end($tmp); 

                $_FILES['file']['name']     = $imagename;
                $_FILES['file']['type']     = $value['type'][$i];
                $_FILES['file']['tmp_name'] = $value['tmp_name'][$i];
                $_FILES['file']['error']    = $value['error'][$i];
                $_FILES['file']['size']     = $value['size'][$i];

                $config['upload_path']   = './uploads/'; 
                $config['allowed_types'] = 'gif|jpg|png';
                $config['file_name']     = $imagename;                                

                $this->upload->initialize($config);                                        

                if ( ! $this->upload->do_upload('file')) 
                {
                    $error = array($i => $this->upload->display_errors());                 
                    echo "<pre>";print_r($error);die;
                }            
                else 
                { 
                    array_push($images,$this->upload->data()['file_name']);                 
                }        
                $i++;                
            }            
            echo "<pre>";print_r($images);die;
//加载上载库
$this->load->library('upload');
$images=array();
$i=0;
foreach($\文件为$key=>$value)
{                                                                
$tmp=explode(“.”,$value['name'][$i]);
$imagename=time().“.”结束($tmp);
$\u文件['file']['name']=$imagename;
$\u文件['file']['type']=$value['type'][$i];
$\u FILES['file']['tmp_name']=$value['tmp_name'][$i];
$\u文件['file']['error']=$value['error'][$i];
$\u文件['file']['size']=$value['size'][$i];
$config['upload_path']='./uploads/';
$config['allowed_types']='gif | jpg | png';
$config['file_name']=$imagename;
$this->upload->initialize($config);
如果(!$this->upload->do_upload('file'))
{
$error=array($i=>$this->upload->display_errors());
echo”“;print_r($error);die;
<?php $attributes = array(
 "class"                 => "form-horizontal m-t-20",
 "method"                => "post",
 "novalidate"            => "",
 "enctype"               => "multipart/form-data"
);
echo form_open('admin/user/adduser', $attributes); ?>
<label for="file">Profile Images*</label>
<input type="file" name="files[]" id="file" multiple required placeholder="Profile Images" class="form-control">
} 其他的 { 数组推送($images,$this->upload->data()['file\u name']); } $i++; } 回声“;打印(图像);死亡
<?php $attributes = array(
 "class"                 => "form-horizontal m-t-20",
 "method"                => "post",
 "novalidate"            => "",
 "enctype"               => "multipart/form-data"
);
echo form_open('admin/user/adduser', $attributes); ?>
<label for="file">Profile Images*</label>
<input type="file" name="files[]" id="file" multiple required placeholder="Profile Images" class="form-control">
这是我上传文件时使用的表单代码。 视图=>


这是我的文件输入控件

foreach($_FILES["files"]["tmp_name"] as $key=>$value) {
配置文件图像*
这是因为所有图像上的time()都是相同的,因此文件名不是唯一的。通过将数组键添加到文件名,可以很容易地解决此问题

$_FILES['file']['type']     = $_FILES["files"]['type'][$key];
这是因为所有图像上的time()都是相同的,因此文件名不是唯一的。通过将数组键添加到文件名,可以很容易地解决此问题

$_FILES['file']['type']     = $_FILES["files"]['type'][$key];

按如下方式更改代码

public function upload_multiple($field_name,$path){

    $this->load->library('upload');
    $files = $_FILES;
    $cpt = count($_FILES[$field_name]['name']);//count for number of image files
    $image_name =array();
    for($i=0; $i<$cpt; $i++)
    {           
        $_FILES[$field_name]['name']= $files[$field_name]['name'][$i];
        $_FILES[$field_name]['type']= $files[$field_name]['type'][$i];
        $_FILES[$field_name]['tmp_name'] = $files[$field_name]['tmp_name'][$i];
        $_FILES[$field_name]['error']= $files[$field_name]['error'][$i]; 
        $_FILES[$field_name]['size'] = $files[$field_name]['size'][$i];
    
        $this->upload->initialize($this->set_upload_options($path));//for initalizing configuration for each image
        $this->upload->do_upload($field_name);  

        $data = array('upload_data' => $this->upload->data()); 
        $image_name[]=$data['upload_data']['file_name'];//store file name to store in database
    }
    return $image_name;//all images name which is uploaded
}
public function set_upload_options($path)
{   
    $config = array();
    $config['upload_path'] = $path;
    $config['allowed_types'] = 'gif|jpg|png';
    $config['overwrite']     = FALSE;

    return $config;
}
并将
$i
更改为
$key
,如下所示(适用于all)


正如wazabii所建议的,在文件名上附加了一些随机字符串。您可以使用兰德(10010000)更改代码,如下所示

public function upload_multiple($field_name,$path){

    $this->load->library('upload');
    $files = $_FILES;
    $cpt = count($_FILES[$field_name]['name']);//count for number of image files
    $image_name =array();
    for($i=0; $i<$cpt; $i++)
    {           
        $_FILES[$field_name]['name']= $files[$field_name]['name'][$i];
        $_FILES[$field_name]['type']= $files[$field_name]['type'][$i];
        $_FILES[$field_name]['tmp_name'] = $files[$field_name]['tmp_name'][$i];
        $_FILES[$field_name]['error']= $files[$field_name]['error'][$i]; 
        $_FILES[$field_name]['size'] = $files[$field_name]['size'][$i];
    
        $this->upload->initialize($this->set_upload_options($path));//for initalizing configuration for each image
        $this->upload->do_upload($field_name);  

        $data = array('upload_data' => $this->upload->data()); 
        $image_name[]=$data['upload_data']['file_name'];//store file name to store in database
    }
    return $image_name;//all images name which is uploaded
}
public function set_upload_options($path)
{   
    $config = array();
    $config['upload_path'] = $path;
    $config['allowed_types'] = 'gif|jpg|png';
    $config['overwrite']     = FALSE;

    return $config;
}
并将
$i
更改为
$key
,如下所示(适用于all)

正如wazabii所建议的,在文件名上附加了一些随机字符串。您可以使用兰德(10010000)控制代码

 <input type="file" id="portfolio_image" name="protfolio_image[]" >
输入字段


控制器代码

 <input type="file" id="portfolio_image" name="protfolio_image[]" >
输入字段



没用,还是一样的问题。没用,还是一样的问题。那怎么办?这回答了你的问题吗?这回答了你的问题吗?那怎么办?这能回答你的问题吗?这回答了你的问题吗?看看,你确定吗?因为当我通过TMPY名字时,它只考虑循环中的tMPyNo..是的,它只考虑循环时的代码> tMPyNox。但是,为了获取数据,您应该使用
$\u FILES[“FILES”]['type'][$key]
。试试打印(),你会看到的。看看。你确定吗?因为当我通过TMPY名字时,它只考虑循环中的tMPyNo..是的,它只考虑循环时的代码> tMPyNox。但是,为了获取数据,您应该使用
$\u FILES[“FILES”]['type'][$key]
。尝试打印(),您将看到。