继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

摸索php 自定义文件上传类

零基础h5前端入门培训
关注TA
已关注
手记 301
粉丝 37
获赞 253

<?php

session_start();


$upload_file=$_FILES['file'];

$username=$_POST['username'];

//print_r($upload_file);


$cls_uploadFile=new cls_upload_file($username);

$cls_uploadFile->upload_file($upload_file);


class cls_upload_file{

   private $upload_dir;

   private $accept_fileType;

   private $max_fileSize;

   private $root_Dir;

   const default_root_path = "../upload/tmp/";

   //设置提示消息

   static function feed_Msg($msg_code){

       $msgs=array(

           'F000'=>'Success',

           'F100'=>'File Exist',

           'F200'=>'Patch Create Failed',

           'F300'=>'File Upload Wrong'

       );

       return $msgs[$msg_code];

   }


   //初始化构造函数,如果没有值则给默认路径

   public function __construct($folder = "tmp1") {

       //defalut file in tmp folder

       if (trim($folder) == ""){

           $folder = self::default_root_path."tmp1";

       }else{

           $folder=self::default_root_path.$folder;

       }

       $this->upload_dir = $folder;

   }


   //上传文件入口

   public function upload_file($file){

       $f_Name = $file['name'];

       $f_tmpName = $file['tmp_name'];

       $f_Size = $file['size'];

       $f_Error = $file['error'];

       $f_Type = $this->get_fileType($f_Name);


       if($f_Error!=0){

           echo self::feed_Msg('F300');

           return false;

       }


       $dir = $this->upload_dir; //取得上传文件夹路径


       //检测是否存在路径返回路径,不存在创建 返回路径

       $target_dir = $this->checkDir_exist($dir);

       if($target_dir<0){

           echo self::feed_Msg('F200');

           return false;

       }


       //拼接目标文件

       $target_file=$target_dir."/".$f_Name;

       //检查文件是否存在,不存在则返回文件名,反之返回-1

       $target_file=$this->check_file_exist($target_file);

       //文件存在 退出返回

       if ($target_file<0){

           echo self::feed_Msg('F100');

           return false;

       }


       //移动临时文件到指定文件

       move_uploaded_file($f_tmpName, $target_file);

       echo self::feed_Msg('F000');

      //$_SESSION['fname']="prefix-".md5($file['name']);

      //echo "<br />";

      //echo "FileName :".$_SESSION['fname'];

//       echo json_encode("uploaded");

//       header("Location: ../upload.php?name=fasdf");

   }


   //检查文件是否存在

   private function check_file_exist($file){

       if(!file_exists($file)){

           return $file;

       }else{

           return -1;

       }

   }

   private function check_file_size($file){


   }

   private function move_file($file,$new_location){


   }


   //获取文件类型

   private function get_fileType($fileName){

       $ftype=  pathinfo($fileName, PATHINFO_EXTENSION);

       return $ftype;

   }


   //检测文件夹是否存在,不存在创建,存在返回路径,创建失败返回-1

   private function checkDir_exist($dir){

       if(is_dir($dir)){

           return $dir;

       }else{

           if(!mkdir($dir)){

               return -1;

           }

           return $dir;

       }

   }


   private function addFile_to_db(){


   }


   public function set_max_FileSize($size = -1){

       $this->max_fileSize = $size;

   }


   public function set_accept_FileType($type = -1){

       $this->accept_fileType = $type;

   }


   public function set_root_FolderDir($rootDir = -1){

       $this->root_Dir = $rootDir;

   }

}


?>


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP