codeigniter中的多个文件上传 [英] multiple file upload in codeigniter

查看:186
本文介绍了codeigniter中的多个文件上传的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



$ $ $ $ codeount = count($ _ FILES [ 'userfile的'] [ '尺寸']);
($ s = 1; $ s <= $ count; $ s ++){
$ _FILES ['userfile'] ['name'] = $ _FILES ['userfile'] ['name' ] [$ S];
$ _FILES ['userfile'] ['type'] = $ _FILES ['userfile'] ['type'] [$ s];
$ _FILES ['userfile'] ['tmp_name'] = $ _ FILES ['userfile'] ['tmp_name'] [$ s];
$ _FILES ['userfile'] ['error'] = $ _FILES ['userfile'] ['error'] [$ s];
$ _FILES ['userfile'] ['size'] = $ _FILES ['userfile'] ['size'] [$ s];
$ this-> upload-> initialize($ this-> set_upload_options());
$ this-> upload-> do_upload();

private function set_upload_options(){
$ config = array();
$ config ['upload_path'] ='./images/';
$ config ['allowed_types'] ='gif | jpg | png';
$ config ['max_size'] ='100';
$ config ['max_width'] ='1024';
$ config ['max_height'] ='768';
return $ config;

我只获得阵列中的第一个文件没有上传...有没有什么不对的代码...我不能弄明白...请帮助我..
在此先感谢

解决方案

我在这里看到两个问题。首先:

$ $ _ FILES ['userfile'] ['size'] 将会返回文件的大小bytes ...因为它是一个整数,所以 count 函数每次都会返回 1 。使用数组 $ _ FILES ['userfile'] ['tmp_name'] 代替:

  $ count = count($ _ FILES ['userfile'] ['tmp_name']); 

然后覆盖 $ _ FILES 超全局。所以你必须使用一个局部变量来保存它:
$ b $ $ $ $ $ $ $ $ $ count $ count $(FILES ['userfile'] [ 'tmp_name的值']);
$ files = $ _FILES;
($ s = 1; $ s <= $ count; $ s ++){
$ _FILES ['userfile'] ['name'] = $ files ['userfile'] ['name' ] [$ S];
$ _FILES ['userfile'] ['type'] = $ files ['userfile'] ['type'] [$ s];
$ _FILES ['userfile'] ['tmp_name'] = $ files ['userfile'] ['tmp_name'] [$ s];
$ _FILES ['userfile'] ['error'] = $ files ['userfile'] ['error'] [$ s];
$ _FILES ['userfile'] ['size'] = $ files ['userfile'] ['size'] [$ s];
$ this-> upload-> initialize($ this-> set_upload_options());
$ this-> upload-> do_upload();
}


I am trying multiple file upload in Codeigniter.I uses following code for this

$count = count($_FILES['userfile']['size']);
    for($s=1; $s<=$count; $s++) {
            $_FILES['userfile']['name']= $_FILES['userfile']['name'][$s];
            $_FILES['userfile']['type']= $_FILES['userfile']['type'][$s];
            $_FILES['userfile']['tmp_name']=$_FILES['userfile']['tmp_name'][$s];
            $_FILES['userfile']['error']=  $_FILES['userfile']['error'][$s];
            $_FILES['userfile']['size']= $_FILES['userfile']['size'][$s];
            $this->upload->initialize($this->set_upload_options());
            $this->upload->do_upload();
    }
    private function set_upload_options(){
                         $config = array();
                        $config['upload_path'] = './images/';
                        $config['allowed_types'] = 'gif|jpg|png';
                        $config['max_size'] = '100';
                        $config['max_width']  = '1024';
                        $config['max_height']  = '768';
                        return $config;
                        }

I am getting only first file in array uploaded..rest of files in array are not uploaded...is there anything wrong in this code...i cant figure it out...please help me.. Thanks in advance

解决方案

I see two problems here. First :

$_FILES['userfile']['size'] will return the volume of the files in bytes... As it is an integer, the count function will return 1 every time. Use the array $_FILES['userfile']['tmp_name'] instead :

$count = count($_FILES['userfile']['tmp_name']);

Then, you are overwriting the $_FILES superglobal. So you will have to use a local variable to save it :

$count = count($_FILES['userfile']['tmp_name']);
$files = $_FILES;
for($s=1; $s<=$count; $s++) {
    $_FILES['userfile']['name']= $files['userfile']['name'][$s];
    $_FILES['userfile']['type']= $files['userfile']['type'][$s];
    $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$s];
    $_FILES['userfile']['error']= $files['userfile']['error'][$s];
    $_FILES['userfile']['size']= $files['userfile']['size'][$s];
    $this->upload->initialize($this->set_upload_options());
    $this->upload->do_upload();
}

这篇关于codeigniter中的多个文件上传的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆