zoukankan      html  css  js  c++  java
  • php文件上传MAX_FILE_SIZE不起作用的问题

    最近在学习php的文件上传,学完后自己试着联系下,文件类型大小的判断都没有问题,最后也成功上传了,但是$_FILES['pic']['error']==2时怎么都搞不出来,弄得老大郁闷。刚开始代码如下:

    HTML页面:

    <form action='upload.php' method="post" enctype="multipart/form-data">

    图片:<input type="file" name='pic'/>
    <input type="hidden" name="MAX_FILE_SIZE" value="100000"/>
    <input type="submit" value='上传'/>
    </form>

    PHP页面:

    <?php
    $maxsize=1024000;        //上传文件最大值为1M
    $types=array("jpg","png","gif");
    $name=$_FILES['pic']["name"];
    $filepath="./uploads";
    //配置上传目录
    if(!file_exists($filepath)){
        mkdir($filepath);
    }
    //1判断错误类型
    if($_FILES['pic']['error']>0){
    switch($_FILES['pic']['error']){
        
        case 1:
        $error='上传文件超过了php.ini的upload_max_filesize值的大小';
        break;
        case 2:
        $error='上传文件超过了HTML表单的MAX_FILE_SIZE值的大小';
        break;
        case 3:
        $error='只有部分文件被上传';
        break;
        case 4:
        $error='没有文件被上传';
        break;
        default:
        $error='未知错误';
        
        }
        echo $error;
        exit;
    }
    //2判断文件类型
    $name=$_FILES['pic']["name"];
    $start=strrpos($name,'.')+1;
    $filetype=substr($name,$start);
    if(!in_array($filetype,$types)){
        die('文件类型不正确');
    }
    //3判断文件大小
    if($_FILES['pic']['size']>$maxsize){
        die('文件过大');    
    }
    //4对上传文件重命名
    $newfilename=date("YmdHis").rand(100,999).".".$filetype;

    //5移动文件
    $newfile=rtrim($filepath,'/')."/".$newfilename;
    if(is_uploaded_file($_FILES['pic']['tmp_name'])){
        if(move_uploaded_file($_FILES['pic']['tmp_name'],$newfile)){
            echo '上传成功';
        }else{
            echo '上传失败';    
        }
        
    }else{
        die("不是一个上传文件");    
    }

    ?>

    最后和别人写的代码对比了下,发现问题很简单,必需把<input type="hidden" name="MAX_FILE_SIZE" value="100000"/>  移到   图片:<input type="file" name='pic'/>才可以,再上传超过100k的图片便会报错了。

  • 相关阅读:
    VMware 虚拟机扩容磁盘
    记录一次Jenkins多分支构建问题
    ceph 集群快速部署
    阿里云EMAS发布套餐订阅云服务
    我研究过的OA产品这是简单的总结
    Hello,OA!Hello,工作流!寻找OA和工作流的旅途记录
    疑难杂症1-去掉网站里的特殊编码&#65279
    IIS 平台NET无后缀名伪静态实现办法
    让人无语的面试题!!排序!你试试?
    优秀的大企业报告辅助撰写系统介绍
  • 原文地址:https://www.cnblogs.com/kongxs/p/3026642.html
Copyright © 2011-2022 走看看