• 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的图片便会报错了。

  • 相关阅读:
    中断一个telnet连接
    QQ提示应用程序并行配置不正确,绿色版QQ不能运行解决方法
    新劳动合同法今起实施 正式工与派遣工同工同酬
    最详细的装修施工顺序
    最好的前端hacking备忘录——集锦
    基于vue配置axios
    Vue 实现loading进度条
    Vue 实现countDown倒计时
    使用mongoose操作mongodb数据库
    Vue项目之IE下打开页面是空白
  • 原文地址:https://www.cnblogs.com/kongxs/p/3026642.html
Copyright © 2020-2023  润新知