zoukankan      html  css  js  c++  java
  • php部分---单文件上传的封装类

    <?php
    $fileinfo=$_FILES["myfile"];
    function uploadfile($fileinfo,$allowext=array('jpeg','jpg','pnd','gif','wbmp'),$flag=true,$maxsize=2097152){
    //判断错误信息
    if($fileinfo['error']>0)
    {
        switch($fileinfo['error'])
            {
                case 1:
                $mes= "上传文件超过了PHP配置文件中upload_max_filesize选项的值";
                break;
                case 2:
                $mes= "超过了表单MAX_FILE_SIZE的限制大小";
                break;
                case 3:
                $mes= "文件部分被上传";
                break;
                case 4:
                $mes= "没有选择上传文件";
                break;
                case 6:
                $mes= "没有找到临时目录";
                break;
                case 7:
                case 8:
                $mes= "系统错误";
                break;
                
                }
            exit($mes);
        
    }
    
    //判断上传文件类型是不是在规定类型中
        $allowext=array('jpeg','jpg','pnd','gif','wbmp');   //定义一下允许的上传文件类型
        $ext=strtolower(end(explode(',',$fileinfo['name'])));//截取上传文件扩展名
        if(!in_array($ext,$allowext))    // 判断上传文件的扩展名是不是在定义类型中
        {
             exit('非法文件类型');    
            }
    
    //判断上传文件大小
        $maxsize=2097152;         //写最大的字节数,自己算
        if($fileinfo['size']>$maxsize)
        {
            exit('上传文件过大');
            }
            
    //判断文件是否是通过HTTP POST方式上传上来的
        if(!is_uploaded_file($fileinfo['tmp_name']))
        {
            exit('文件不是通过HTTP POST方式上传上来的');
            }
            
    //检测是否为真实的图片类型,而不是认为改动的
        $flag=true;
        if($flag)
        {
            if(!getimagesize($fileinfo['tmp_name']))
            {
                echo "不是真实的图片类型";
                }
            }
            
    
    //判断服务器上存储的文件夹在不在
    $path='uploads';  //服务器上存储文件的文件名
        if(!file_exists($path))
        {
            mkdir($path,0777,true);//不存在就创建一个目录
            chmod($path,0777);//加一个权限
            
            }
    $uniname=md5(uniqid(microtime(true),true)).'.'.$ext;   //通过MD5加密等措施给文件名取名,产生唯一文件名
        
        $destination=$path.'/'.$uniname;
        if(!move_uploaded_file($fileinfo['tmp_name'],$destination)) //上传文件
        {
            echo "文件上传失败";
            }
        
        return array(
        
        'newname'=>$destination,
        'size'=>$fileinfo['size'],
        'type'=>$fileinfo['type']
        
        
        );
        
                
    }
  • 相关阅读:
    Java中如何更换jar包中的.class文件并重新打包
    IIS环境配置和项目部署
    C#中Invoke与BeginInvoke区别
    Windows编程 网络编程基础
    Windows编程 网络编程常见结构体
    什么是OpenGL中的深度、深度缓存、深度测试
    三维场景的渲染优化
    矢量数据转换成栅格数据
    vs2010 c# 配置项问题
    宝宝小时候竟然是近视?
  • 原文地址:https://www.cnblogs.com/xingyue1988/p/6235337.html
Copyright © 2011-2022 走看看