• PHP 文件上传


    HTML

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>文件上传</title>
    </head>
    <body>
        <form action="upload.php" method="post" enctype="multipart/form-data">
            <!-- 演示2错误 (如果写在下面,不生效了)-->
            <!-- <input type="hidden" name="MAX_FILE_SIZE" value='10'> -->
            <input type="file" name="abcfile" /><br/>
            <input type="submit" value="上传" />
        </form>
    </body>
    </html>
    

    PHP

    <?php
    var_dump($_FILES);
    // var_dump($_FILES['abcfile']);
    // 1. 判断是否有错误号(查手册is_uploaded_file)
    if($_FILES['abcfile']['error']){
        switch ($_FILES['abcfile']['error']) {
            case 1:
                $str = '上传的文件超过了php.ini中 upload_max_filesize 选项限制的值';
                break;
            case 2:
                $str = '上传文件的大小超过了HTML表单中 MAX_FILE_SIZE 选项指定的值';
                break;
            case 3:
                $str = '文件只有部分被上传';
                break;
            case 4:
                $str = '没有文件被上传';
                break;
            case 6:
                $str = '找不到临时文件夹';
                break;
            case 7:
                $str = '文件写入失败'; 
                break;
        }
        echo $str;
        exit;
    }
    // 2.判断你准许的文件的大小
    if($_FILES['abcfile']['size'] > (pow(1024, 2) * 2)){
        echo '文件大小超过了准许的大小';
    }
    // 3.判断你准许的mime类型,文件后缀名
    $allowMime = ['image/png', 'image/jpg','image/jpeg', 'image/gif', 'image/wbmp'];
    $allowSubFix = ['png', 'jpg', 'jpeg', 'gif', 'wamp'];
    $info = pathinfo($_FILES['abcfile']['name']);
    // var_dump($info);
    $subFix = $info['extension'];
    if(!in_array($subFix, $allowSubFix)){
        exit('不准许的文件后缀');
    }
    if(!in_array($_FILES['abcfile']['type'], $allowMime)){
        exit('不准许的mime类型');
    }
    // 4.拼接上传路径
    $path = 'upload/';
    if(!file_exists($path)){
        mkdir($path);
    }
    // 5.文件名随机
    $name = uniqid() . '.' . $subFix;
    // 6.判断是否是上传文件
    if(is_uploaded_file($_FILES['abcfile']['tmp_name'])){
        if(move_uploaded_file($_FILES['abcfile']['tmp_name'], $path.$name)){
            echo '上传成功';
        }else{
            echo '文件移动失败';
        }
    }else{
        echo '不是上传文件';
        exit;
    }
    
  • 相关阅读:
    Mac上使用Charles抓取https
    使用react-navigation 报错isMounted
    create-react-app创建出来项目,如何设置CSS模块化?
    Markdown 常用语法整理
    Git安装和使用
    页面重定向跳转
    AntDesign 踩坑大全
    js实现数组、对象深度克隆的两种办法
    wamp中mysql安装时能启动,重启后无法启动的解决办法
    前端开发工具收藏
  • 原文地址:https://www.cnblogs.com/lisaShare/p/12524287.html
Copyright © 2020-2023  润新知