博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php单文件上传和多文件上传
阅读量:6619 次
发布时间:2019-06-25

本文共 1912 字,大约阅读时间需要 6 分钟。

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

你可能感兴趣的文章
多继承
查看>>
.net4 DataAnnotations小试(转帖)
查看>>
怎么看性能瓶颈?
查看>>
解决淘淘商城“拦截器处理请求”的一个错误
查看>>
【javascript基础】1、基本概念
查看>>
IE setAttribute frameborder 相关
查看>>
Windows Phone 8.1 Tiles, Notifications and Action Center
查看>>
P2x与P3x的区别
查看>>
setTimeout()传带有参数的函数
查看>>
webstorm for mac
查看>>
id,is的用法,小数据池的概念及编码知识进阶
查看>>
初识 go 语言
查看>>
c3p0配置文件报错 对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾。
查看>>
save(),saveOrUpdate(),merge()的区别
查看>>
C++ Guaranteed Copy Elision
查看>>
OpenIndiana简介
查看>>
我的前端工具集
查看>>
linux救援
查看>>
php中自动加载类_autoload()和spl_autoload_register()实例详解
查看>>
shell脚本执行查找进程,然后查杀进程
查看>>