xiaoqiang 发表于 2013-4-7 15:16:12

CI 同时上传多个图片

最近,一直在研究ci框架,由于项目的需求,在后台需要做一个功能同时上传两张图片。测试了好久都没有两张图片都没有上传成功,(上传的结果是只能上传第二张图片,但是图片名称是第一个图片的)。
在这里说一下自己的思路,首先肯定是上传两张图片,然后提交到php页面,然后打印$_FILES你会看到一个二维数组,我这里是通过foreach循环来操作:
                               $this->load->library('upload');//重点
                                foreach($_FILES as $key=>$val)
                                {
                               
                                $filename = $_FILES[$key]['name'];
                              $tmp = explode('.', $filename);
                              $ext = $tmp;//获取文件后缀
                              /*组合$config*/
                              $this->upload->initialize($config);// 重点
                              $this->upload->do_upload($key);
                              //$info[$key] = $config['file_name'];
                               
                                       
                   }

上边的代码比较简单,在我标明重点的两端代码,大家一定要注意。原来我的代码是在foreach中添加$this->load->library('upload',$config);这样测试了好多次都不行,最后改用 $this->load->library('upload');//重点 $this->upload->initialize($config);// 重点。问题就解决了。

CIyang 发表于 2016-5-6 16:11:43

这里是control中的代码{:1_1:}{:1_1:}{:1_1:}
//处理文件上传数据
      public functiondo_upload(){
            //重新组合一个$_FILES中的格式 使其变为和上传单个文件的数据格式类似
            foreach($_FILES['myfile'] as $index => $vals){
                foreach ($vals as $i => $val) {
                  $file_map[$i]['myfile'][$index] = $val;
                }
            }
            foreach ($file_map as $files) {
                $config['upload_path'] = './uploads/admin/test';
                $config['file_name'] = uniqid();
                $config['allowed_types'] = 'gif|jpg';
               
                //遍历   这样每次都去覆盖掉$_FILES中的数据 (PS:这样覆盖后,$_FILES格式就和上传单个文件的格式是一模一样的了)
                $_FILES = $files;

                $this->load->library('upload',$config);
                $this->upload->do_upload("myfile");
                echo $this->upload->display_errors();
                var_dump($this->upload->data());
            }
      }

paph 发表于 2016-11-1 09:16:49

foreach($_FILES as $key=>$val)
                {
                            $filename = $val['name'];
                }
                echo "<pre>";
                var_dump($filename);
                echo "</pre>";
                die;
打印结果string(7) "789.jpg",上传两张只有一个图片的名字,是我哪里写错了吗,

紫罗兰、番茄 发表于 2013-8-3 13:05:16

{:1_1:}谢谢分享

桃渊明 发表于 2013-10-26 10:38:01

mark!

天涯-沦落人 发表于 2014-4-1 14:02:53

mark!

goyuquan 发表于 2014-4-15 11:07:18

谢谢分享

karrysun 发表于 2014-4-28 13:17:41

{:soso_e179:}

杨风109 发表于 2014-6-6 17:32:56

学习一下

开源 发表于 2014-8-26 14:19:13

非常感谢

xuyaokun 发表于 2014-8-29 12:00:02

好好:victory:

the7th 发表于 2015-3-18 01:51:58

本帖最后由 the7th 于 2015-3-18 11:42 编辑

好像是我写错了 不过还是没结果
页: [1] 2
查看完整版本: CI 同时上传多个图片