搜索
首页php教程PHP源码php经典文件上传类

<script>ec(2);</script>

php经典文件上传类
#*********************************************************
#文件名称:
inc_class.upload.php
#功能描述: 上传文件类
#程序制作:青春一度(adleyliu)
#联系qq 
:14339095

2.0.a
#注:转发时请保留此声明信息,这段声明不并会影响你的速度!
#如有修改请将修改后的文件以邮件形式发送给作者一份,谢谢!
#
#*********************************************************
if(!defined('IN_PHPADLEYIU'))
{
 exit('Access Denied');
}

/*
//使用说明:
//声明一个上传类
include_once(ADLEYLIU_ROOT.'./inc_class.upload.php');
$_YL_UPLOAD
= array();
$yl_uploadfile = new
yl_upload_class();
$_YL_UPLOAD['yl_filedata'] =
'uploadFile';//表单名
$_YL_UPLOAD['yl_directroy'] =
'upload_files';//上传主目录
$_YL_UPLOAD['file_urldirectroy'] = '/';//
程序路径
$_YL_UPLOAD['yl_settingsnew'] =
''.date('ym').'/'.date('d').'/'.substr(time(), 0,
5).'';//上传子主目录
$_YL_UPLOAD['yl_maxsize'] = 1048576; 
//这里以字节为单位(1024*2)*1024=2097152 就是 2M
$_YL_UPLOAD['yl_sizeformat'] =
'k';   //显示文件大小单位b字节,k千,m兆
$_YL_UPLOAD['yl_arrext'] =
array('gif','jpg','jpeg','png','bmp','rar','txt');//允许上传文件类型
$_YL_UPLOAD['yl_ext']
= 0;  //0原文件类型上传,1统一为存为jpg
$_YL_UPLOAD['yl_prefix'] =
''.$uid.''.$yl_uploadfile -> yl_createrand(1,0).''.$cid.''; 
//在文件名前缀加上特殊字符 //$uid 会员ID  $cid 分类ID
$_YL_UPLOAD['yl_suffix'] =
'';  //''.$yl_uploadfile -> yl_createrand(3,0).''; 
//在文件名后缀加上特殊字符
$_YL_UPLOAD['thumbwidth'] = 100; 
//缩略图宽
$_YL_UPLOAD['thumbheight'] = 100; 
//缩略图高
$_YL_UPLOAD['maxthumbwidth'] = 500; 
//大图高
$_YL_UPLOAD['maxthumbheight'] = 500; 
//大图宽
//上传
$yl_uploadfile -> yl_uploadfile();
获取值:
'yl_filename'
=> addslashes($_YL_UPLOAD['yl_filename']),原文件名
'yl_attachment' =>
$_YL_UPLOAD['yl_attachment'],新文件名及路径
'yl_filesize' =>
$_YL_UPLOAD['yl_filesize'] ,文件大小
'yl_filetype' =>
$_YL_UPLOAD['yl_filetype'],文件类型
'yl_isimage' =>
$_YL_UPLOAD['yl_isimage'],是否是图片
'yl_isthumb' =>
$_YL_UPLOAD['yl_isthumb'],是否有小图片
*/

class yl_upload_class
{
 function __GET($property_name)
{
  if(isset($this -> $property_name))
{
   return $this -> $property_name;
  } else
{
   return
NULL;
  }
 }
 function __SET($property_name,
$value) {
  $this -> $property_name =
$value;
 }
 
 #*********************************************************
 #生成缩略图
 #*********************************************************

 function makethumb($srcfile) {
  global $_YL_UPLOAD;

  //判断文件是否存在
  if (!file_exists($srcfile))
{
   return '';
  }
  $dstfile =
$srcfile.'.small.jpg';
 
  $bigfile =
$srcfile.'.big.jpg';

  //缩略图大小
  $tow =
intval($_YL_UPLOAD['thumbwidth']);
  $toh =
intval($_YL_UPLOAD['thumbheight']);
  if($tow 60;
  if($toh

  $make_max = 0;
  $maxtow =
intval($_YL_UPLOAD['maxthumbwidth']);
  $maxtoh =
intval($_YL_UPLOAD['maxthumbheight']);
  if($maxtow >= 300
&& $maxtoh >= 300) {
   $make_max =
1;
  }

  //获取图片信息
  $im = '';
  if($data =
getimagesize($srcfile)) {
   if($data[2] == 1)
{
    $make_max =
0;//gif不处理
    if(function_exists("imagecreatefromgif"))
{
     $im =
imagecreatefromgif($srcfile);
    }
   }
elseif($data[2] == 2)
{
    if(function_exists("imagecreatefromjpeg"))
{
     $im =
imagecreatefromjpeg($srcfile);
    }
   }
elseif($data[2] == 3)
{
    if(function_exists("imagecreatefrompng"))
{
     $im =
imagecreatefrompng($srcfile);
    }
   }
  }
  if(!$im)
return '';

  $srcw = imagesx($im);
  $srch = imagesy($im);

  $towh = $tow/$toh;
  $srcwh =
$srcw/$srch;
  if($towh    $ftow =
$tow;
   $ftoh = $ftow*($srch/$srcw);

   $fmaxtow = $maxtow;
   $fmaxtoh =
$fmaxtow*($srch/$srcw);
  } else {
   $ftoh =
$toh;
   $ftow = $ftoh*($srcw/$srch);

   $fmaxtoh = $maxtoh;
   $fmaxtow =
$fmaxtoh*($srcw/$srch);
  }
  if($srcw && $srch    $make_max =
0;//不处理
  }
  if($srcw > $tow || $srch > $toh)
{
   if(function_exists("imagecreatetruecolor") &&
function_exists("imagecopyresampled") && @$ni =
imagecreatetruecolor($ftow, $ftoh))
{
    imagecopyresampled($ni, $im, 0, 0, 0, 0, $ftow,
$ftoh, $srcw,
$srch);
    //大图片
    if($make_max
&& @$maxni = imagecreatetruecolor($fmaxtow, $fmaxtoh))
{
     imagecopyresampled($maxni, $im, 0, 0, 0, 0,
$fmaxtow, $fmaxtoh, $srcw, $srch);
    }else if (@$maxni
= imagecreatetruecolor(round($srcw/2),
round($srch/2))){
     imagecopyresampled($maxni,
$im, 0, 0, 0, 0, round($srcw/2), round($srch/2), $srcw,
$srch);
    }
   }
elseif(function_exists("imagecreate") &&
function_exists("imagecopyresized") && @$ni = imagecreate($ftow, $ftoh))
{
    imagecopyresized($ni, $im, 0, 0, 0, 0, $ftow,
$ftoh, $srcw,
$srch);
    //大图片
    if($make_max
&& @$maxni = imagecreate($fmaxtow, $fmaxtoh))
{
     imagecopyresized($maxni, $im, 0, 0, 0, 0,
$fmaxtow, $fmaxtoh, $srcw, $srch);
    }else if (@$maxni
= imagecreate(round($srcw/2),
round($srch/2))){
     imagecopyresized($maxni, $im,
0, 0, 0, 0, round($srcw/2), round($srch/2), $srcw,
$srch);
    }
   } else
{
    return
'';
   }
   if(function_exists('imagejpeg'))
{
    imagejpeg($ni,
$dstfile);
    //大图片
    if($make_max)
{
     imagejpeg($maxni,
$bigfile);
    }else{
     imagejpeg($maxni,
$bigfile);
    }
   }
elseif(function_exists('imagepng')) {
    imagepng($ni,
$dstfile);
    //大图片
    if($make_max)
{
     imagepng($maxni,
$bigfile);
    }else{
     imagejpeg($maxni,
$bigfile);
    }
   }
   imagedestroy($ni);
   if($make_max)
{
   }else{
    imagedestroy($maxni);
   }
  }else{


          
if(function_exists("imagecreatetruecolor") &&
function_exists("imagecopyresampled") && @$ni =
imagecreatetruecolor($srcw, $srch))
{
    imagecopyresampled($ni, $im, 0, 0, 0, 0, $srcw,
$ftoh, $srch,
$srch);
    //大图片
     $maxni =
imagecreatetruecolor($srch, $srch);
    
imagecopyresampled($maxni, $im, 0, 0, 0, 0, $srcw, $srch, $srcw,
$srch);
 
   } elseif(function_exists("imagecreate")
&& function_exists("imagecopyresized") && @$ni =
imagecreate($ftow, $ftoh)) {
    imagecopyresized($ni,
$im, 0, 0, 0, 0, $srcw, $srch, $srcw,
$srch);
    //大图片
     $maxni =
imagecreate($fmaxtow, $fmaxtoh);
    
imagecopyresized($maxni, $im, 0, 0, 0, 0, $srcw, $srch, $srcw,
$srch);
   
   } else
{
    return
'';
   }
                
imagejpeg($ni, $dstfile);

     imagejpeg($maxni,
$bigfile);
 
  }

  imagedestroy($im);

  if(!file_exists($dstfile)) {
   return
'';
  } else {
   return
$dstfile;
  }
 }

 #*********************************************************
 #获取随机数函数
 #*********************************************************
 function
yl_createrand($length, $numeric = 0) {
  PHP_VERSION && mt_srand((double)microtime() * 1000000);
  if($numeric)
{
   $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10,
$length) - 1));
  } else {
   $hash =
'';
   $chars =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';///0123456789
   $max
= strlen($chars) - 1;
   for($i = 0; $i {
    $hash .= $chars[mt_rand(0,
$max)];
   }
  }
  return
$hash;
 }
 #***************
 #*********************************************************
 #创建目录函数
 #*********************************************************
 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_UPLOAD;
  return
$_FILES[$_YL_UPLOAD['yl_filedata']][$yl_type];
 }
 #*********************************************************
 #获取文件大小
 #*********************************************************
 function
yl_getfilesize()
 {
  global
$_YL_UPLOAD;
  $yl_filesize = $this ->
yl_getfilename('size');
  if($yl_filesize ==
0){
   $this ->
alert("请选择上传文件!");
   exit;
  }
  if($yl_filesize
> $_YL_UPLOAD['yl_maxsize']){

   switch
(strtolower($_YL_UPLOAD['yl_sizeformat'])){
    case
'b':
     $yl_maxsizek = $_YL_UPLOAD['yl_maxsize'] .
' B';
     break;
    case
'k':
     $yl_maxsizek =
$_YL_UPLOAD['yl_maxsize']/1024 . '
K';
     break;
    case
'm':
     $yl_maxsizek =
$_YL_UPLOAD['yl_maxsize']/(1024*1024) . '
M';
   }
   $this ->
alert("上传文件超出限制范围[".$yl_maxsizek."].K!");
   exit;
  }
  return
$yl_filesize;
 }
 #*********************************************************
 #获得文件扩展名
 #*********************************************************
 function
yl_getfiletype()
 {
  global
$_YL_UPLOAD;
  $pathinfo = pathinfo($this ->
yl_getfilename('name'));
  $yl_file_ext =
strtolower($pathinfo['extension']);
  //检查扩展名
  if(!array_keys($_YL_UPLOAD['yl_arrext'],$yl_file_ext))
{
   $this ->
alert("上传文件类型被限制!");
   exit;
  }
  return
$yl_file_ext;
 }

 #*********************************************************
 #上传验证
 #*********************************************************
 function
yl_upfile($source, $target) {
  //
如果一种函数上传失败,还可以用其他函数上传
  if (function_exists('move_uploaded_file')
&& @move_uploaded_file($source, $target))
{
   @chmod($target, 0666);
   return
$target;
  } elseif (@copy($source, $target))
{
   @chmod($target, 0666);
   return
$target;
  } elseif (@is_readable($source))
{
   if ($fp = @fopen($source,'rb'))
{
    @flock($fp,2);
    $filedata
=
@fread($fp,@filesize($source));
    @fclose($fp);
   }
   if
($fp = @fopen($target, 'wb')) {
    @flock($fp,
2);
    @fwrite($fp,
$filedata);
    @fclose($fp);
    @chmod
($target, 0666);
    return
$target;
   } else {
    return
false;
   }
  }
 }
 #*********************************************************
 #上传
 #*********************************************************
 function
yl_uploadfile()
 {
  global
$_YL_UPLOAD;
  $yl_file_path =
$_YL_UPLOAD['yl_directroy'].'/'.$_YL_UPLOAD['yl_settingsnew']
;//建立一个目录
  $yl_filename = $this ->
yl_getfilename('name');//原文件名
  $yl_filenamenews =
$_YL_UPLOAD['yl_prefix'].''.substr(time(), 5,
9).''.$_YL_UPLOAD['yl_suffix'].'';//重命名
  $yl_file_size = $this
-> yl_getfilesize();//获取文件大小
  $yl_file_type = $this ->
yl_getfiletype();//获取文件类型
  if($_YL_UPLOAD['yl_ext'] ==
0){
   $yl_filenamenewsext =
$yl_filenamenews.'.'.$yl_file_type;//改名
  }elseif
($_YL_UPLOAD['yl_ext'] == 1){
   $yl_filenamenewsext =
$yl_filenamenews.'.jpg';//统一改名为jpg
  }
  //$yl_tmp_name
=  str_replace(' ','',$this ->
yl_getfilename('tmp_name'));//服务器上临时文件名
  $yl_tmp_name = 
$this ->
yl_getfilename('tmp_name');//服务器上临时文件名
  //检查是否已上传
  if( href="mailto:!@is_uploaded_file($yl_tmp_name">!@is_uploaded_file

($yl_tmp_name))
{
   $this ->
alert("文件已上传!");
   exit;
  }
  //检查目录是否存在,不存在则创建
  if( href="mailto:!@is_dir(''.$_YL_UPLOAD

['file_urldirectroy'].''.$yl_file_path.''">!@is_dir(''.$_YL_UPLOAD

['file_urldirectroy'].''.$yl_file_path.''))
{
   $this ->
createfolder(''.$_YL_UPLOAD['file_urldirectroy'].''.$yl_file_path.'');//创建

目录
  }
  //检查目录写权限
  if
( href="mailto:!@is_writable(''.$_YL_UPLOAD

['file_urldirectroy'].''.$yl_file_path.''">!@is_writable(''.$_YL_UPLOAD

['file_urldirectroy'].''.$yl_file_path.''))
{
   $this ->
alert("上传目录没有写权限!");
   exit;
  }
  $yl_path_name
=
''.$_YL_UPLOAD

['file_urldirectroy'].''.$yl_file_path.'/'.$yl_filenamenewsext.'';
  $yl_doupload
= $this -> yl_upfile($yl_tmp_name, $yl_path_name);

  if($yl_doUpload ===
false)
  {
   $this ->
alert("上传失败!");
   exit;
  }else{
   //echo
'上传成功';
   //echo
'
';
   /*
   echo
'原文件名:'.$yl_filename.'';
   echo
'
';
   echo
'新文件名及目录:'.$yl_file_path.'/'.$yl_filenamenewsext;
   echo
'
';
   echo
'文件大小:'.$yl_file_size.'';
   echo
'
';
   echo
'文件类型:'.$yl_file_type.'';
   */
   $_YL_UPLOAD['yl_filename']
= $yl_filename;
   $_YL_UPLOAD['yl_attachment'] =
''.$yl_file_path.'/'.$yl_filenamenewsext.'';
   $_YL_UPLOAD['yl_filesize']
= $yl_file_size;
   $_YL_UPLOAD['yl_filetype'] =
$yl_file_type;
   //检查是否图片
   if(@getimagesize($yl_path_name))
{
    $_YL_UPLOAD['yl_isimage'] =
1;
    ///生成缩略图
    if ($this
->
makethumb($yl_path_name)){
     $_YL_UPLOAD['yl_isthumb']
=
1;
    }else{
     $_YL_UPLOAD['yl_isthumb']
=
0;
    }
   }else{
    $_YL_UPLOAD['yl_isimage']
= 0;
   }
  }
  return
true;
 }

 #*********************************************************
 #提示
 #*********************************************************
 function
alert($yl_msg)
 {
  echo
'';
  echo '

';
  echo
'error';
  echo ' http-equiv="content-type" content="text/html;
charset=gb2312">';
  echo '';
  echo
'';
  echo '<script></script> type="text/javascript">alert("'.$yl_msg.'");history.back();';
  echo
'';
  echo
'';
  exit;
 }
}
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具