• 上传文件案例服务器端限制


    <form action="do.php" method = "post" enctype = "multipart/form-data">
            <!-- <input type="hidden" name="MAX_FILE_SIZE" value="123456"> 限制文件大小 -->
            <!-- <input type="file" name = "myfile" accept="image/jpeg,image/jpg,image/png,audio/flac"> 限制文件类型-->
                    <input type="file" name = "myfile">
                    <input type="submit" value="提交">
    </form>
    --------------------------------------------------------------------------------------------------------------------------------------------------------
    <?php
    /**接收$_FILES的文件信息 */
    // print_r($_FILES);
    $file = $_FILES['myfile'];
    $maxsize = 209410520; //允许文件最大值 20M
    $extall = array('bmp','jpg','png','tif','gif','pcx','tga','exif','fpx','svg','psd','cdr','pcd','dxf','raw','WMF','webp');
    // $flag = true;   /**检测是否是真是的文件类型 */
    /**判断错误号 0或者UPLOAD_ERR_OK为成功 */
    if($error==UPLOAD_ERR_OK)
    {
        if($file['error']>$maxsize){
            exit("文件过大");
        }
        $ext = pathinfo($file['name'],PATHINFO_EXTENSION);
        // print_r($ext);die;
        if(!in_array($ext,$extall)){
            exit("非法文件类型");
        }
        if(!is_uploaded_file($file['tmp_name'])){
            exit("文件不是 HTTP POST 方式上传的");
        }
        $path = "uploads";
        if(!file_exists($path)){
            mkdir("uploads",0777,true);
            chmod($path,0777);
        }
        /**检测是否是真是的图片类型 */
        // if($flag){
            if(!getimagesize($file['tmp_name'])){
                exit('不是真实的图片类型');
            }
        // }
        /**确保文件名字不重复 */
        $uname = md5(uniqid(microtime(true),true)) .'.'. $ext;
        $filePath = $path . '/' . $uname;
        if(@move_uploaded_file($file['tmp_name'],$filePath)){
            echo "文件 ".$file['name']." 上传成功";
        }else{
            echo "文件 ".$file['name']." 上传失败";
        }
    }else{
        /**匹配错误信息 */
        switch($file['error']){
            case 1;
                echo "上唇文件超过PHP配置文件中 upload_max_filesize 的选项值";
                break;
            case 2;
                echo "超过表单max_file_size的限制大小";
                break;
            case 3;
                echo "文件部分被上传";
                break;
            case 4;
                echo "没有选择上传文件";
                break;
            case 6;
                echo "没有找到临时目录";
                break;
        }
    }
  • 相关阅读:
    ps photoshop cc 2015 Extract Assets(生成器)切图大法
    获取免费代理推荐
    nodejs http代理请求
    nodejs 发起http请求
    AHK GUI开发示例
    为【桌面右键菜单
    NPM 模块收集
    nodejs Commander 命令行神器简单示例
    如何用nodejs 开发一个命令行交互工具
    利用 T-sql 的从句 for xml path('') 实现多行合并到一行, 并带有分隔符
  • 原文地址:https://www.cnblogs.com/dsds/p/14745633.html
Copyright © 2020-2023  润新知