• php文件上传


    <?php
        $allowtype = array("gif", "png", "jpg");   //设置充许上传的类型为gif, png和jpg
        $size = 1000000;                           //设置充许大小为1M(1000000字节)以内的文件
        $path = "./uploads";                       //设置上传后保存文件的路径
        
        //判断文件是否可以成功上传到服务器,$_FILES['myfile']['error'] 为0表示上传成功
        if($_FILES['myfile']['error'] > 0) {      
            echo '上传错误: ';
            switch ($_FILES['myfile']['error']) {
                 case 1:  die('上传文件大小超出了PHP配置文件中的约定值:upload_max_filesize');  
                case 2:  die('上传文件大小超出了表单中的约定值:MAX_FILE_SIZE');  
                case 3:  die('文件只被部分上载'); 
                case 4:  die('没有上传任何文件'); 
                default: die('末知错误');
               }
        }
        
        //判断上传的文件是否为充许的文件类型,通过文件的后缀名
        $hz = array_pop(explode(".", $_FILES['myfile']['name']));
        //通过判断文件的后缀方式,来决定文件是否是充许上传的文件类型
        if(!in_array($hz, $allowtype)) {
            die("这个后缀是<b>{$hz}</b>,不是充许的文件类型!");
        }
        
        /* 也可以通过获取上传文件的MIME类型中的主类型和子类型,来限制文件上传的类型
        list($maintype,$subtype)=explode("/",$_FILES['myfile']['type']);    
          if ($maintype=="text") {   //通过主类型限制不能上传文本文件,例如.txt .html .php等文件
            die('问题: 不能上传文本文件。');
        } */
    
        //判断上传的文件是否为充许大小
        if($_FILES['myfile']['size'] > $size ) {
            die("超过了充许的<b>{$size}</b>字节大小");
        }
        
        //为了系统安全,也为了同名文件不会被覆盖,上传后将文件名使用系统定义
        $filename = date("YmdHis").rand(100,999).".".$hz;
        
        //判断是否为上传文件
        if (is_uploaded_file($_FILES['myfile']['tmp_name'])) { 
             if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $path.'/'.$filename)) {  
                die('问题: 不能将文件移动到指定目录。');
            }
         }else{
            die("问题: 上传文件{$_FILES['myfile']['name']}不是一个合法文件: ");
        }
    
        //如果文件上传成功则输出
        echo "文件{$upfile}上传成功,保存在目录{$path}中,大小为{$_FILES['myfile']['size']}字节";   
  • 相关阅读:
    电脑连不上网
    decompiler of java
    emmmmmmmmmmmmmmmmmm01
    WEB-INF
    tan?
    spring配置
    maven安装和使用前的几个点
    ※剑指offer系列29:两个链表的第一个公共结点
    剑指offer系列28:数组中的逆序对
    剑指offer系列27:第一个只出现一次的字符
  • 原文地址:https://www.cnblogs.com/qingxiaoping/p/5018218.html
Copyright © 2020-2023  润新知