• php文件上传——php经典实例


     php文件上传——php经典实例

    表单页

    <html>
        <head>
            <title>文件上传</title>
            <meta  charset='utf-8' />
        </head>
        <body>
            <form action='doupload.php' method='post' enctype='multipart/form-data'>
                <input type='file' name='filename' />
                <input type='submit' />
            </form>
        </body>
    </html>

    上传处理页

    <?php
        //var_dump($_FILES);
        /*'filename' => 
        array (size=5)
          'name' => string '7730-15042G60S6-52.jpg' (length=22)
          'type' => string 'image/jpeg' (length=10)
          'tmp_name' => string 'D:wamp64	mpphpE94A.tmp' (length=25)
          'error' => int 0
          'size' => int 338411*/
        //获取文件信息
        $fileinfo=$_FILES['filename'];
        //文件上传路径
        $path="./uploads/";
        //大小 0不限止
        $maxsize=0;
        
        //判断错误号
        if($fileinfo['error']>0){
            switch($fileinfo['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;
                case 6:$error="找不到临时文件夹";break;
                case 7:$error="文件写入失败";break;
                default:$error="未知错误,请稍后再试...";
            }
        }
        //定义允许类型
        $typearr=array("image/jpeg","image/png","image/gif");
        //判断类型
        if(count($typearr)>0){
            if(!in_array($fileinfo['type'],$typearr)){
                die("文件上传失败!类型不符");
            }
        }
        //取后缀
        $ext=pathinfo($fileinfo['name'],PATHINFO_EXTENSION);
        
        //生成随机文件名
        do{
        
            $newname=date("YmdHis").rand(1000,9999).".".$ext;
        
        }while(file_exists($path.$newname));
        
        //判断是否上传成功
        if(is_uploaded_file($fileinfo['tmp_name'])){
            if(move_uploaded_file($fileinfo['tmp_name'],$path.$newname)){
                echo "上传成功!";
            }else{
                die("移动失败!");
            }
        
        }else{
            die("未知错误!请重试");
        
        }
        
    ?>
  • 相关阅读:
    c# 三层结构的简单理解
    浅析C#鼠标右键如何添加
    三层结构开发的理解
    Windows快捷键大全
    command 中 ExecuteScalar() ExecuteNonQuery ()和ExecuteReader()的用法
    很拽的JSON
    FCKeditor的全局API
    WebForm_DoPostBackWithOptions 丢失的解决
    闭包的错误例子
    XPath学习笔记 XPath数据模型
  • 原文地址:https://www.cnblogs.com/wordblog/p/6854033.html
Copyright © 2020-2023  润新知