zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    IsIconic() OnPaint里的用途
    中值滤波
    一个小学生题库生成器
    音视频同步
    [转]字符编码笔记:ASCII,Unicode和UTF8
    项目中常见bug及解决方法
    TSQL基础chp10可编程对象学习笔记[上]
    使用UdpAppender时出现了“使用了与请求协议不兼容的地址”的解决办法
    .net gridview 任意单击某行跳转到新的页面,并且新页面的参数来自于与gridview中的不可见字段
    数组去重的四种方法
  • 原文地址:https://www.cnblogs.com/lisaShare/p/12524287.html
Copyright © 2011-2022 走看看