<input type="file" name="photo1" >
<input type="file" name="photo2" >
<input type="file" name="photo[]" >
<input type="file" name="photo[]" >这两种提交的方式可以同时使用也可以单独使用控制器:
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = $size ;// 设置附件上传大小
$upload->exts = $type;// 设置附件上传类型
$upload->rootPath = './Application/Uploads/'; // 设置附件上传根目录
$upload->replace = true;
$upload->subName = $subname;//文件子目录
foreach($_FILES as $key => $value){
if(count($_FILES[$key]) == count($_FILES[$key],1)){//判断$_FILES变量是否是二维数组
$info = $upload->uploadOne($_FILES[$key]);// 如果不是二维数组,使用单文件依次上传的方法
unset($_FILES[$key]);
$arr[$key] = $info;
if(!$info){
$this->errorMsg($upload->getError());
exit;
}
}
}
if(count($_FILES)){
$info = $upload->upload();// 如果是二维数组,使用批量上传文件的方法(上传文件时,每个文件域的name属性是未知的或者以数组形式定义的)
if(!$info){
$this->errorMsg($upload->getError());
exit;
}
$arr['array'] = $info;//数组上传的返回信息全部在键名为array的
}
return $arr;现在出现了很奇怪的现象,在本地开发的时候,怎么上传都是正确的。都是一旦部署到服务器,不管表单那边是何种情况,一次上传一张都是正确的,一旦上传多张,就会失败,比如上传3张,返回的结果是3个相同的结果,文件也只上传了一个。另外说明一点,文件域已photo1命名的是已经上传,可以修改的文件域,文件域已photo[]命名的是新建需要上传的,我这么做是为了保证一个操作可以同时完成新增和修改图片。怀疑是不是环境有什么模块我没开? 最佳答案