Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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&;HTML5-尝试一次上载多个图像_Php_Codeigniter_File Upload_Codeigniter 2 - Fatal编程技术网

Php Codeigniter&;HTML5-尝试一次上载多个图像

Php Codeigniter&;HTML5-尝试一次上载多个图像,php,codeigniter,file-upload,codeigniter-2,Php,Codeigniter,File Upload,Codeigniter 2,视图看起来像这样 <?=form_open_multipart('upload/process');?> <input type="file" multiple="multiple" name="userfile[]" id="userfile" /> <?=form_submit('upload', 'Upload');?> <?=form_close();?> 我也遇到了这个问题。$\u文件数据以不同的

视图看起来像这样

<?=form_open_multipart('upload/process');?>
        <input type="file" multiple="multiple" name="userfile[]" id="userfile" />
        <?=form_submit('upload', 'Upload');?>
    <?=form_close();?>

我也遇到了这个问题。
$\u文件
数据以不同的结构发送(由于
multiple=”“
属性),因此codeigniter无法处理它。在上载过程之前预编此文件:

$arr_files  =   @$_FILES['userfile'];

$_FILES     =   array();
foreach(array_keys($arr_files['name']) as $h)
$_FILES["file_{$h}"]    =   array(  'name'      =>  $arr_files['name'][$h],
                                    'type'      =>  $arr_files['type'][$h],
                                    'tmp_name'  =>  $arr_files['tmp_name'][$h],
                                    'error'     =>  $arr_files['error'][$h],
                                    'size'      =>  $arr_files['size'][$h]);
然后在循环函数中使用以下命令:

$this->load->library('upload');

$arr_config =   array(  'allowed_types' =>  'gif|jpg|png',
                            'upload_path'   =>  'url_path/');

foreach(array_keys($_FILES) as $h) {

    // Initiate config on upload library etc.

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

    if ($this->upload->do_upload($h)) {

        $arr_file_data  =   $this->upload->data();

    }

}
说明:
我只需将
$\u文件的结构
更改为在默认
上发送的公共结构,然后运行循环,获取它们的所有键名。

您需要的循环:

for($i=0; $i<count($_FILES['name']); $i++){
    if ($_FILES['error'][$i] == 0) {
        //do your stuff here, each image is at $_FILES['tmp_name'][$i]
    }
}

对于($i=0;$i请签出该类以进行多文件上载


这对我来说是个好办法。

那么你有什么问题?我想使用codeigniter构建一个基本的多图像上传程序,而不涉及任何javascript。我的意思是,到底是什么问题,你尝试了什么,等等……但是,好吧,我给你写了你需要的循环。看看你是否可以从那里解决。我如何获得var_dump()在我处理之前上传的数据上,您需要有关$_文件数据或使用Codeigniter上传时创建的数据的信息?有关数据的问题已解决。现在我只想使用循环从数组中提取信息。(更新中提供)我不能确切地说出你想要什么。我已经更新了最后一段代码,希望能让它更清楚。在上传之前,你仍然需要更改
$\u文件
数组的结构。CI库/帮助程序是原始php,但我明白你的意思,有时候插入自己的代码比查看CI文件更容易、更快看看他们以什么方式完成了一个特定的功能。+1是的,CI的文件上传类需要扩展/改进,以实现更广泛的功能……但对于最基本的用途来说,它做得很好。
for($i=0; $i<count($_FILES['name']); $i++){
    if ($_FILES['error'][$i] == 0) {
        //do your stuff here, each image is at $_FILES['tmp_name'][$i]
    }
}