面向对象---封装文件上传思路

<?php
header("content-type:text/html;charset=utf8");
//获取数据信息
$data = $_FILES;
//循环遍历的方式取到单个的数组
foreach ($data as $key=>$val){
    $arr = $val;
}

//判断一下是不是有效的文件
if(!is_array($arr) || empty($arr)){
    echo "无效的文件";die;
}

//获取后缀
if(!empty($arr['name'])) {
    $info = pathinfo($arr['name']);
    $st = $info['dirname'];
    $ext = $info['extension'];
}

//判断一下错误类型
switch ($arr['error']){
    case 1: echo "上传的文件超过了 php.ini 中 upload_max_filesize选项限制的值。";die;break;
    case 2: echo "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。";die;break;
    case 3: echo "文件只有部分被上传。";die;break;
    case 4: echo "没有文件被上传。";die;break;
    case 6: echo "找不到临时文件夹。";die;break;
    case 7: echo "文件写入失败。";die;break;
}

//设置一下允许文件上传的类型
$types = array('image/gif','image/jpeg','image/jpg','image/pjpeg','image/x-png','image/png');
//设置一下允许文件上传的大小
$sizes = 204800;  //小于200kb

if(!in_array($arr['type'],$types)){
    echo "文件类型不被允许";
}

if($arr['size']>$sizes){
    echo "文件太大了";die;
}

//判断文件目录是不是存在
if(!is_dir('./upload')){
    mkdir('upload');
}
// 判断当期目录下的 upload 目录是否存在该文件
// 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
if (file_exists("upload/" . $arr["name"]))
{
    echo $arr["name"] . " 文件已经存在。 ";die;
}
else
{
    // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
    $path = "upload/" .$arr['name'].$st.$ext;  //路径
    move_uploaded_file($arr["tmp_name"],$path);
}

echo $path;

猜你喜欢

转载自www.cnblogs.com/hopelooking/p/9037878.html