zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
        
    ?>
  • 相关阅读:
    Caused by: java.lang.NumberFormatException: For input string: "18446744073709551615"
    As/IDEA json自动生成java bean
    OpenSSL + Windows 下载安装
    Https双向认证Android客户端配置
    Linux SSH & SCP命令
    解决服务器上 w3wp.exe 和 sqlservr.exe 的内存占用率居高不下的方案
    echarts 怎样去掉白色边框线 和怎样去除背景中的网格
    echarts 去掉网格线
    Echarts学习记录——如何去掉网格线及网格区域颜色
    JS删除String里某个字符的方法
  • 原文地址:https://www.cnblogs.com/kevinggk/p/6590952.html
Copyright © 2011-2022 走看看