0

我正在尝试进行多个文件上传,其中一个input['file']用于图像,另一个用于视频

这是控制器

public function upload(){
  $data['errorPic'] = $this->validateUpload();  
  $data['errorVid'] = $this->validateUpload2();
}

public function validateUpload(){
    if ( $_FILES AND isset($_FILES['coverImage']['name']) ){
        $config['upload_path'] = 'blogpics/';
        $config['allowed_types'] = 'png|gif|jpg|jpeg';
        $config['max_size'] = '999999';

        $this->load->library("upload",$config);

        if(!$this->upload->do_upload("coverImage")){
            return $this->upload->display_errors();
        }
    }   
}

public function validateUpload2(){
    if ( $_FILES AND isset($_FILES['video']['name'])){
        $config['upload_path'] = 'blogvids/';
        $config['allowed_types'] = 'png|gif|jpg|jpeg';
        $config['max_size'] = '999999';

        $this->load->library("upload",$config);

        if(!$this->upload->do_upload("video")){
            return $this->upload->display_errors();
        }
    }
}

只有第一个被调用的函数在工作

示例:如果我首先将validateUpload2()函数放在函数顶部,则顶部的validateUpload()第一个函数正在工作,第二个没有

4

2 回答 2

1

谢谢大家的回复

我已经解决了

我只是再次使用初始化上传

$this->upload->initialize();
于 2012-06-12T03:50:56.113 回答
0

它不起作用的原因是因为上传的文件在移动之前是临时的。执行 move_uploaded_file 后,将无法再访问临时文件。如果在第二个函数中调用 is_uploaded_file,它将返回 false。

查看将您写入第一个目录的文件复制到第二个文件夹。

编辑

看起来你改变了你的帖子。这种情况与以前不同。

这一次,看起来有两个单独的文件正在上传。

看起来它应该可以工作,但我正在研究它。我想知道这是否与上传帮助程序类的重新初始化有关。

于 2012-06-09T01:24:57.397 回答