首页> 基础笔记 >PHP基础学习 >文件处理 文件处理
PHP完整的文件上传处理
作者:小萝卜 2019-08-27 【 PHP 文件 】 浏览 1039
简介PHP完整的文件上传处理
PHP完整的文件上传处理
<?php
//完整的文件上传处理
//1. 初始化变量
$upfile = $_FILES['pic']; //获取上传文件信息
$path = "./uploads/"; //上传文件储存目录
$typeList=array("image/jpeg","image/png","image/gif"); //允许的上传文件类型(空数组表示不限制)
$maxSize=0; //表示允许上传文件的大小(默认0表示不限制)
//2. 判断错误号
if($upfile['error']>0){
switch($upfile['error']){
case 1: $info = "上传文件大小超出php.ini的配置"; break;
case 2: $info = "上传文件大小超出表单隐藏的设置"; break;
case 3: $info = "只有部分文件被上传"; break;
case 4: $info = "没有文件上传"; break;
case 6: $info = "找不到临时文件夹"; break;
case 7: $info = "文件写入失败"; break;
default: $info = "未知上传文件错误!"; break;
}
die("文件上传失败!原因:".$info);
}
//3. 过滤上传文件类型
if(count($typeList)>0){
if(!in_array($upfile['type'],$typeList)){
die("文件上传失败!原因:上传文件类型错误!");
}
}
//4. 过滤上传文件大小
if($maxSize>0){
if($maxSize<$upfile['size']){
die("文件上传失败!原因:上传文件大小超出当前配置!");
}
}
//5. 随机上传文件名
$ext = pathinfo($upfile['name'],PATHINFO_EXTENSION); //获取文件的后缀名
do{
$newfile = date("YmdHis").rand(1000,9999).".".$ext; //随机新的文件名
}while(file_exists($path.$newfile)); //判断新文件名是否存在
//6. 执行上传文件处理
//先判断上传文件是否有效
if(is_uploaded_file($upfile['tmp_name'])){
//执行上传文件的移动
if(move_uploaded_file($upfile['tmp_name'],$path.$newfile)){
//表示上传文件成功
echo "上传文件成功!文件名:".$newfile;
}else{
die("上传文件移动失败!");
}
}else{
die("无效的上传文件!");
}
很赞哦! (0)
上一篇:PHP处理多个文件上传基础学习
下一篇:PHP文件上传基础学习