• FileOprSer.class.php(文件上传与下载类)


    <?php
            
        class FileOperSer{
            //文件下载
        function fileDown($file_name){
            //iconv()把编码改变
            //原因 php文件函数,比较古老,需要对中文转码 gb2312
            $file_name=iconv("utf-8","gb2312",$file_name);
        //绝对路径  
        $file_path=$_SERVER['DOCUMENT_ROOT'].$file_name;
        //打开图片
        
        if(!file_exists($file_path)){
          
            echo "没有这个图片";
            return;
        }
      
         $fp=fopen($file_path,"r");
         //获取图片大小
        $file_size=filesize($file_path);
            if($file_size>10*1024*1024){
                
                echo "过大";
                return;
            }
        //返回的文件
            header("Content-type: application/octet-stream");
            //按照字节大小返回
            header("Accept-Ranges: bytes");
            //返回文件大小
            header("Accept-Length: $file_size");
            //客户端的弹出对话框,对应的文件名
            header("Content-Disposition: attachment; filename=".$file_name);
    
            //向客户端回送数据
        
            $buffer=1024;
           
            $file_count=0;
            while (!feof($fp) && ($file_size-$file_count)>0){
                $file_data=fread($fp, $buffer);
                //统计字节
                $file_count+=$buffer;
                //把部分数据回送给浏览器;
                echo $file_data;
            }
    
            //关闭文件
            fclose($fp);
    
        }
           //文件上传
        public function fileUp($username,$fileintro,$fileService){
            //获取文件类型
            $fileType=$_FILES['myfile']['type'];
            if($fileType!="image/jpg" && $fileType!="image/jpeg"){
                echo "文件只能上传jpg图片类型";
                //header("refresh:3;upload.php");
                exit();
            }
            //获取文件的大小
            $file_size=$_FILES['myfile']['size'];
            if($file_size>2*1024*1024){
                echo "不能上传大于2M的文件";
                exit();
            }
             
            
            if(is_uploaded_file($_FILES['myfile']['tmp_name'])){
                
                //把路径赋值到变量中
                $upload_file=$_FILES['myfile']['tmp_name'];
              
                $user_path="/upfile/up/".$username;
               
                $user_path=iconv("utf-8","gb2312", $user_path);
               
                if(!file_exists($_SERVER["DOCUMENT_ROOT"].$user_path)){
                    mkdir($_SERVER["DOCUMENT_ROOT"].$user_path);
                }
                //把中文文件名进行编码
                //$fileName=iconv("utf-8","gb2312",$_FILES['myfile']['name']);
                //随机产生
                $file_true_pos=$_FILES['myfile']['name'];
                $move_to=$user_path."/".date("YmdHis",time()).rand(1,100).
                substr($file_true_pos,strrpos($file_true_pos,"."));
                $move_to_file= $_SERVER['DOCUMENT_ROOT'].$move_to;
        
                //  改变路径,如果成功传入信息
                if (move_uploaded_file($upload_file,$move_to_file)){
        
                    $move_to= iconv("gb2312", "utf-8", $move_to);
                    if($fileService->addFiledb($move_to, $username, $fileintro)==1){
                        header("Location:ok.php");
                         
                        exit();
                    }else{
                        header("Location:error.php");
                        exit();
                    }
        
                }else{
                    //header("refresh:3;upload.php");
                    echo "上传失败";
                    exit();
                }
            }else{
                // header("refresh:3;upload.php");
                echo "上传失败";
                exit();
            }
        }
    }
        
    ?>
  • 相关阅读:
    SEO值得学习建议
    ClientValidationFunction
    readystate的五种状态
    XMLHTTP对象参考
    Provider详解
    有缺点,向左走向右走
    DotNetBar 6.6.0.4 for Vs2005 (+特殊补丁)
    [无敌]一些web开发中常用的、做成cs文件的js代码 转帖来的
    AjaxPro.NET框架生成高效率的Tree(Asp.net 2.0)(示例代码下载)
    Vista 下使用Visual Studio 2005 开发Oracle 方面程序出现的数据连结问题及解决方案
  • 原文地址:https://www.cnblogs.com/kevinggk/p/6590952.html
Copyright © 2020-2023  润新知