我正在尝试进行多文件上传,其中一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()
函数的顶部,则顶部的第一个函数正在工作,第二个函数没有
感谢大家的回复
我已经解决了
我只是使用
$this->upload->initialize();
它不起作用的原因是上传的文件在移动之前是临时的。执行move_uploaded_file后,将无法再访问临时文件。如果在第二个函数中调用is_uploaded_file,它将返回 false。
考虑将写入第一个目录的文件复制到第二个文件夹。
编辑
看起来你改变了你的帖子。这种情况与前一个方案不同。
这一次,看起来有两个单独的文件正在上传。
看起来它应该有效,但我正在研究它。我想知道这是否与上传助手类的重新初始化有关。