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

  • 相关阅读:
    一个matlab小程序:挑出沪市A股年报与一季度报在同一天发布的股票
    AWK
    matlab搜索路径
    从新浪财经上下载交易明细数据并统计每天的买卖笔数(shell 命令行)
    AWK截取字符串
    tar GNU
    工作效率上的错觉(转载)
    matlab双精度浮点数编码及区间覆盖(原创)
    DNS服务器设置(Ubuntu10.04)
    sed
  • 原文地址:https://www.cnblogs.com/kongxs/p/3026642.html
Copyright © 2011-2022 走看看