php中关于判断上传文件格式
$kuozhan=array('jpg','gif','doc');foreach($val['tmp_name']as$key=>$us){foreach($val['...
$kuozhan=array('jpg','gif','doc');
foreach($val['tmp_name'] as $key=>$us){
foreach($val['name'] as $key=>$ns){
$arr=pathinfo($val['name'][$key]);
if(!in_array($arr['extension'],$kuozhan)){
echo " 上传失败,格式错误!";
return false;
}else{
上传程序
}
}
}
if这里有问题
如果第一循环出来的扩展名存在于$kuozhan数组中 那么就会执行下面的else ,第二次如果不是就只上传了第一次的文件。现在,要的效果是循环出来的字符串要同时存在数组中规定的值 才执行下面的else,也就是说循环出来的扩展名有一个不符合$kuozhan数组里的,都不执行上传程序的,求解? 展开
foreach($val['tmp_name'] as $key=>$us){
foreach($val['name'] as $key=>$ns){
$arr=pathinfo($val['name'][$key]);
if(!in_array($arr['extension'],$kuozhan)){
echo " 上传失败,格式错误!";
return false;
}else{
上传程序
}
}
}
if这里有问题
如果第一循环出来的扩展名存在于$kuozhan数组中 那么就会执行下面的else ,第二次如果不是就只上传了第一次的文件。现在,要的效果是循环出来的字符串要同时存在数组中规定的值 才执行下面的else,也就是说循环出来的扩展名有一个不符合$kuozhan数组里的,都不执行上传程序的,求解? 展开
展开全部
那只有把这段代码写两次,第一次判断是否合法(不要else),第二次执行上传(不要if),例如:
$kuozhan=array('jpg','gif','doc');
foreach($val['tmp_name'] as $key=>$us){
foreach($val['name'] as $key=>$ns){
$arr=pathinfo($val['name'][$key]);
if(!in_array($arr['extension'],$kuozhan)){
echo " 上传失败,格式错误!";
return false;
}
}
foreach($val['tmp_name'] as $key=>$us){
foreach($val['name'] as $key=>$ns){
$arr=pathinfo($val['name'][$key]);
上传程序
}}
展开全部
$kuozhan=array('jpg','gif','doc');
$flag = 1; // 判断上传文件是否格式正确,正确则为1 , 有一个格式错误则0
// 循环,检测格式是否错误
foreach($val['tmp_name'] as $key=>$us){
foreach($val['name'] as $key=>$ns){
$arr=pathinfo($val['name'][$key]);
if(!in_array($arr['extension'],$kuozhan)){
echo " 上传失败,格式错误!";
$flag = 0; // 格式有错,flag为0
break;
}
}
}
// 上传文件
if ($flag == 1) {
循环上传文件
}
$flag = 1; // 判断上传文件是否格式正确,正确则为1 , 有一个格式错误则0
// 循环,检测格式是否错误
foreach($val['tmp_name'] as $key=>$us){
foreach($val['name'] as $key=>$ns){
$arr=pathinfo($val['name'][$key]);
if(!in_array($arr['extension'],$kuozhan)){
echo " 上传失败,格式错误!";
$flag = 0; // 格式有错,flag为0
break;
}
}
}
// 上传文件
if ($flag == 1) {
循环上传文件
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询