php单文件上传和多文件上传

php上传文件步骤
1.判断文件是否是表单提交
2.判断是否有选择文件
3.判断文件存储路径是否存在
4.判断文件类型是否符合
5.判断错误类型
6.判断是否存在临时文件
7.判断是否上传成功


要求上传的文件是word 和 ppt类型

单文件上传代码:

<?
print_r($_FILES);
extract($_FILES["f1"]);
//判断是否为表单上传
if(!isset($_POST["sub"])){
exit("请通过表单上传");
}
//判断是否有文件上传
if(empty($name)){
exit("请选中文件");
}
//判断文件夹是否存在
$dir="f:/file/upload/";
if(!is_dir($dir)){
mkdir($dir,0777,true);
}
//判断文件是否符合要求
$arr=array("doc","docx","xls","xlsx","ppt","pptx");
$type=substr(strrchr($name,"."),1);
if(!in_array($type,$arr)){
exit("文件类型不符");
}
//判断错误信息
switch($error){
case 1:
echo "超出服务器设置的大小";
break;
case 2:
echo "超出隐藏域设置的大小";
break;
case 3:
echo "部分文件上传";
break;
case 4:
echo "没有文件上传";
break;
case 6:
echo "临时文件夹不存在";
break;
case 7:
echo "写入文件夹出错";
break;
}
//判断临时文件是否存在
if(!is_uploaded_file($tmp_name)){
exit("临时文件不存在");
}
//判断文件是否上传成功
$path=$dir.rand(1000,9000).".".$type;
if(!move_uploaded_file($tmp_name,$path)){
exit("文件上传失败");
}else{
echo "文件上传成功";
}

?>

多文件上传:

<?
print_r($_FILES);
extract($_FILES["fi"]);

//判断文件是否表单提交
if(!isset($_POST["sub"])){
exit("请用表单提交");
}
//判断是否有文件上传
if(empty($name)){
exit("请选择文件");
}
//判断上传路径是否存在
$dir="f:/file/upload/";
if(!is_dir($dir)){
mkdir($dir,0777,true);
}
for($i=0;$i<count($name);$i++){
//判断文件类型是否符合
$arr=array("doc","docx","xls","xlsx","ppt","pptx");
$type=substr(strrchr($name[$i],"."),1);
if(!in_array($type,$arr)){
echo "第{$i}个文件类型不符合";
continue;
}
switch($error[$i]){
case 1:
echo "第{$i}个文件超出服务器设置的大小";
continue;
case 2:
echo "第{$i}个文件超出隐藏域设置的大小";
continue;
case 3:
echo "第{$i}个文件部分文件上传";
continue;
case 4:
echo "第{$i}个文件没有文件上传";
continue;
case 6:
echo "第{$i}个文件临时文件不存在";
continue;
case 7:
echo "第{$i}个文件写入文件夹出错";

  continue;

}
//判断临时文件是否存在
if(!is_uploaded_file($tmp_name[$i])){
echo "临时文件不存在";
continue;
}
//判断是否上传成功
$path=$dir.rand(1000,9000).".".$type;
if(!move_uploaded_file($tmp_name[$i],$path)){
echo "第{$i}个文件上传失败";
continue;
}else{
echo "上传成功";
}

}
?>

转载于:https://blog.51cto.com/13708834/2104771

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值