文件上传类

class yl_upload_class
{
#*********************************************************
#创建目录函数
#*********************************************************
function createfolder($yl_path)
{
   if (!file_exists($yl_path))
   {
    $this -> createfolder(dirname($yl_path));
    @mkdir($yl_path, 0777);
   }
   return $this -> createfolder;
}
#*********************************************************
#获取文件名称,大小,类型,临时文件名
#*********************************************************
function yl_getfilename($yl_type)
{
   global $yl_filedata,$yl_directroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
   return $_FILES[$yl_filedata][$yl_type];
}
#*********************************************************
#获取文件大小
#*********************************************************
function yl_getfilesize()
{
   global $yl_filedata,$yl_directroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
   if($this -> yl_getfilename('size') == 0){
      $this -> alert("请选择上传文件!");
      exit;
   }
   if($this -> yl_getfilename('size') > $yl_maxsize){
         $yl_maxsizek=$yl_maxsize/1024;
      $this -> alert("上传文件超出限制范围$yl_maxsizek.K!");
      exit;
   }
   switch (strtolower($yl_sizeformat)){
   case 'b':
   return $this -> yl_getfilename('size') . ' B';
   break;
   case 'k':
   return ($this -> yl_getfilename('size')/1024) . ' K';
   break;
   case 'm':
   return ($this -> yl_getfilename('size'))/(1024*1024) . ' M';
   }
}
#*********************************************************
#获得文件扩展名
#*********************************************************
function yl_getfiletype()
{
   global $yl_filedata,$yl_directroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
     $yl_temp_arr = explode(".", $this -> yl_getfilename('name'));
     $yl_file_ext = array_pop($yl_temp_arr);
      $yl_file_ext = trim($yl_file_ext);
     $yl_file_ext = strtolower($yl_file_ext);
     //检查扩展名
     if (in_array($yl_file_ext, $yl_arrext) === false) {
        $this -> alert("上传文件类型被限制!");
        exit;
     }
     return $yl_file_ext;
}
#*********************************************************
#上传
#*********************************************************
function yl_uploadfile()
{
   global $yl_filedata,$yl_directroy,$file_urldirectroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
   $yl_file_nameold = $this -> yl_getfilename('name');//原文件名
   $yl_file_namenews = date('Ymd').'_'.md5(date('YmdHis'));//重命名
   if($yl_ext == 0){
      $yl_file_names = $yl_file_namenews.'.'.$this -> yl_getfiletype();//改名
   }elseif ($yl_ext == 1){
      $yl_file_names = $yl_file_namenews.'.jpg';//统一改名为jpg
      }
   $yl_tmp_name = $this -> yl_getfilename('tmp_name');//服务器上临时文件名
   $yl_file_size = $this -> yl_getfilesize();//获取文件大小
   $yl_file_type = $this -> yl_getfiletype();//获取文件类型
   $yl_file_path = $yl_directroy.'/'.$yl_settingsnew;//建立一个目录
     //检查目录是否存在,不存在则创建
     if(@is_dir($yl_file_path) === false) {
      $this -> createfolder(''.$yl_file_path.'');//创建目录
     }
     //检查是否已上传
   if(@is_uploaded_file($yl_tmp_name) === false) {
        $this -> alert("文件已上传!");
        exit;
   }
     //检查目录写权限
     if (@is_writable($yl_file_path) === false) {
          $this -> alert("上传目录没有写权限!");
          exit;
     }
   $yl_doupload = @copy($yl_tmp_name, ''.$yl_file_path.'/'.$yl_file_names.'');
   if($yl_doUpload === false)
   {
    $this -> alert("上传失败!");
   }else{
    echo '上传成功';
    echo '<br>';
    echo '文件目录:'.$yl_file_path.'';
    echo '<br>';
    echo '原文件名:'.$yl_file_nameold.'';
    echo '<br>';
    echo '新文件名:'.$yl_file_names.'';
    echo '<br>';
    echo '文件大小:'.$yl_file_size.'';
    echo '<br>';
    echo '文件类型:'.$yl_file_type.'';
   }
    return;
}
#*********************************************************
#*删除文件
#*********************************************************
function delfile()
{
   global $yl_filedata,$yl_directroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
   $yl__dir = dirname(trim($yl_directroy));
   if( $this->_isDel( $yl__dir ) )
   {
      return @unlink( $yl_directroy ) ? true : false;
   }else{
   return false;
   }
}
#*********************************************************
#删除目录 目录下如果有文件不能删除
#*********************************************************
function deldir( )
{
   global $yl_filedata,$yl_directroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
   if( $this->_isdel($yl_directroy) && is_dir( $yl_directroy ) )
   {
      return @rmdir( $yl_directroy ) ? true : false;
   }else{
      return false;
   }
}
#*********************************************************
#提示
#*********************************************************
function alert($yl_msg)
{
    echo '<html>';
    echo '<head>';
    echo '<title>error</title>';
    echo '<meta http-equiv="content-type" c>';
    echo '</head>';
    echo '<body>';
    echo '<script type="text/javascript">alert("'.$yl_msg.'");;</script>';
    echo '</body>';
    echo '</html>';
    exit;
}
}
?>

 

时间: 2024-12-28 05:35:02

文件上传类的相关文章

PHP中codeigniter文件上传类代码实例

  codeigniter文件上传类代码实例 文件上传类 CodeIgniter 的文件上传类允许文件被上传.您可以设置指定上传某类型的文件及指定大小的文件. 处理过程 上传文件普遍的过程: 一个上传文件用的表单,允许用户选择一个文件并上传它. 当这个表单被提交,该文件被上传到指定的目录. 同时,该文件将被验证是否符合您设定的要求. 一旦文件上传成功,还要返回一个上传成功的确认窗口. 这里有一个简短的教程来显示这个过程.此后你将会找到相关的参考信息. 创建上传表单 运用文本编辑器创建一个名为up

经典的PHP文件上传类

在课堂上给大家写了一个经典的文件上传类,灵活性还可以,大家可以参考使用,   上传文件:   <?php /** * author : PHP100.com * date :2012-9-15 经典的文件上传类  **/  if(!empty($_POST['sub'])){   include("up.class.php");      $up = new up($_FILES['up']); //参数,文件流必选,[指定目录,指定大小,指定文件名]可选  }  ?>  

ASP.NET实现的简单易用文件上传类

  这篇文章主要介绍了ASP.NET实现的简单易用文件上传类,本文给出实现代码和使用方法示例,需要的朋友可以参考下 调用方法: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 UploadFile uf = new UploadFile();   /*可选参数*/ uf.SetIsUseOldFileName(true);//是否使用原始文件名作为新文件的文件名(默认:true),true原始文件名,false系统生成新文件名

PHP多文件上传类

  PHP多文件上传类 /* 多文件上传类 修改:Linvo 2008-2-15 */ class more_file_upload{ const FILE_PATH='../upfileclass/uploadfile/'; var file_type; var file_type_array; var file_type_real_array; var file_type_string; var file_name; var file_size; var file_tmp_name; var

功能强大的php文件上传类_php技巧

本文实例为大家分享了php文件上传类,功能很强大,供大家参考,具体内容如下 <?PHP /* *文件上传类 **/ class upfile{ private $file_size;//上传源文件大小 private $file_tem;//上传文件临时储存名 private $file_name;//上传文件名 private $file_type;//上传文件类型 private $file_max_size=2000000;//允许文件上传最大 private $file_folder=&qu

一个经典的PHP文件上传类分享_php实例

文件上传是项目开发中比较常见的功能,但文件上传的过程比较繁琐,只要是有文件上传的地方就需要编写这些复杂的代码.为了能在每次开发中降低功能的编写难度,也为了能节省开发时间,通常我们都会将这些反复使用的一段代码封装到一个类中.帮助开发者在以后的开发中,通过编写几条简单代码就可以实现复杂的文件上传功能.对于基础薄弱的读者,只要会使用本类即可,而对一些喜欢挑战的朋友,可以尝试去读懂它,并能开发一个属于自己的文件上传类. 一.需求分析 要球自定义文件上传类,即在使用非常简便的前提下,又可以完成以下几项功能

PHP多文件上传类实例_php技巧

本文实例讲述了PHP多文件上传类.分享给大家供大家参考.具体如下: 复制代码 代码如下: <?php /* PHP多文件上传类 修改:Linvo 2008-2-15 */ class more_file_upload{     const FILE_PATH='../upfileclass/uploadfile/';     var $file_type;     var $file_type_array;     var $file_type_real_array;     var $file

PHP文件上传类实例详解_php技巧

本文实例讲述了PHP文件上传类.分享给大家供大家参考,具体如下: 这里演示了FileUpload.class.php文件上传类,其中用到了两个常量,可在网站配置文件中定义: define('ROOT_PATH',dirname(__FILE__)); //网站根目录 define('UPDIR','/uploads/'); //上传主目录 具体代码如下: <?php //上传文件类 class FileUpload { private $error; //错误代码 private $maxsiz

php文件上传类完整实例_php技巧

本文实例讲述了php文件上传类.分享给大家供大家参考,具体如下: /** $file=new class_file($file_array,"flash/"); $file->set_allow_type(array("jpg","jpeg","gif")); $file->is_limit_size(); if(!$file->allow_file_size()){ echo $file->error

非常经典的PHP文件上传类分享_php技巧

文件上传是项目开发中比较常见的功能,但文件上传的过程比较繁琐,只要是有文件上传的地方就需要编写这些复杂的代码.为了能在每次开发中降低功能的编写难度,也为了能节省开发时间,通常我们都会将这些反复使用的一段代码封装到一个类中. <?php /** +----------------------------------------------------------------------------- * 文件上传类 +----------------------------------------