zoukankan      html  css  js  c++  java
  • 上传文件案例服务器端限制

    <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;
        }
    }
  • 相关阅读:
    二维数组实现八皇后问题
    解决Java接口内部类的main()方法无法打印输出的问题
    hbase shell 常见命令
    hbase-0.94 Java API
    JavaMail简单版实验测试
    经典KMP算法C++与Java实现代码
    Hadoop之倒排索引
    哈希哈希
    Servlet和JSP学习指导与实践(三):JSP助阵
    Servlet和JSP学习指导与实践(二):Session追踪
  • 原文地址:https://www.cnblogs.com/dsds/p/14745633.html
Copyright © 2011-2022 走看看