Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4995960
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类:

2006-12-14 04:25:47

主要功能:
文件上传,获取文件名,获取文件大小,随机生成新文件名,获取文件类型,图片生成缩略图,返回缩略图文件名,返回上传后生成的文件的文件名,返回上传后的文件路径
 
iebupload.class.php
//----------------------------------------------------------------------
//转发时请保留此声明信息,这段声明不并会影响你的速度!
//******************* IEB上传类 v1.1 *********************************
//作者:卢韦华
//网站:
//电子邮件:yagas60@21cn.com
//版权声明:版权所有,源代码公开,各种用途均可免费使用,但是修改后必须把修改后的文件
//发送一份给作者.
//***********************************************************************
//

class ieb_upload{
 var $FormName; //文件域名称
 var $Directroy; //上传至目录
 var $MaxSize; //最大上传大小
 var $CanUpload; //是否可以上传
 var $doUpFile; //上传的文件名
 var $sm_File; //缩略图名称
 var $Error; //错误参数
 
 function ieb_upload($formName='', $dirPath='', $maxSize=2097152) //(1024*2)*1024=2097152 就是 2M
 {
 global $FormName, $Directroy, $MaxSize, $CanUpload, $Error, $doUpFile, $sm_File;
 //初始化各种参数
 $FormName = $formName;
 $MaxSize = $maxSize;
 $CanUpload = true;
 $doUpFile = ';
 $sm_File = ';
 $Error = 0;
 
 if ($formName == ''){
 $CanUpload = false;
 $Error = 1;
 break;
 }
 
 if ($dirPath == ''){
 $Directroy = $dirPath;
 }else{
 $Directroy = $dirPath.'/';
 }
 }
 
 //检查文件是否存在
 function scanFile()
 {
 global $FormName, $Error, $CanUpload;
 
 if ($CanUpload){
 
 $scan = is_readable($_FILES[$FormName]['name']);
 
 if ($scan){
 $Error = 2;
 }
 
 return $scan;
 }
 }
 
 
 //获取文件大小
 function getSize($format = 'B')
 {
 global $FormName, $Error, $CanUpload;
 
 if ($CanUpload){
 
 if ($_FILES[$FormName]['size'] == 0){
 $Error = 3;
 $CanUpload = false;
 }
 
 switch ($format){
 case 'B':
 return $_FILES[$FormName]['size'];
 break;
 
 case 'M':
 return ($_FILES[$FormName]['size'])/(1024*1024);
 }
 
 }
 }
 
 //获取文件类型
 function getExt()
 {
 global $FormName, $Error, $CanUpload;
 
 if ($CanUpload){
 $ext=$_FILES[$FormName]['name'];
 $extStr=explode('.',$ext);
 $count=count($extStr)-1;
 }
 return $extStr[$count];
 }
 
 //获取文件名称
 function getName()
 {
 global $FormName, $CanUpload;
 
 if ($CanUpload){
 return $_FILES[$FormName]['name'];
 }
 }
 
 //新建文件名
 function newName()
 {
 global $CanUpload, $FormName;
 
 if ($CanUpload){
 $FullName=$_FILES[$FormName]['name'];
 $extStr=explode('.',$FullName);
 $count=count($extStr)-1;
 $ext = $extStr[$count];
 
 return date('YmdHis').rand(0,9).'.'.$ext;
 }
 }
 
 //上传文件
 function upload($fileName = '')
 {
 global $FormName, $Directroy, $CanUpload, $Error, $doUpFile;
 
 if ($CanUpload){
 if ($_FILES[$FormName]['size'] == 0){
 $Error = 3;
 $CanUpload = false;
 return $Error;
 break;
 }
 }
 
 if($CanUpload){
 
 if ($fileName == ''){
 $fileName = $_FILES[$FormName]['name'];
 }
 
 $doUpload=@copy($_FILES[$FormName]['tmp_name'], $Directroy.$fileName);
 
 if($doUpload)
 {
 $doUpFile = $fileName;
 chmod($Directroy.$fileName, 0777);
 return true;
 }else{
 $Error = 4;
 return $Error;
 }
 }
 }
 
 //创建图片缩略图
 function thumb($dscChar='',$width=150,$height=113)
 {
 global $CanUpload, $Error, $Directroy, $doUpFile, $sm_File;
 
 if ($CanUpload && $doUpFile != ''){
 $srcFile = $doUpFile;
 
 if ($dscChar == ''){
 $dscChar = 'sm_';
 }
 
 $dscFile = $Directroy.$dscChar.$srcFile;
 $data = getimagesize($Directroy.$srcFile,&$info);
 
 switch ($data[2]) {
 case 1:
 $im = @imagecreatefromgif($Directroy.$srcFile);
 break;
 
 case 2:
 $im = @imagecreatefromjpeg($Directroy.$srcFile);
 break;
 
 case 3:
 $im = @imagecreatefrompng($Directroy.$srcFile);
 break;
 }
 
 $srcW=imagesx($im);
 $srcH=imagesy($im);
 $ni=imagecreatetruecolor($width,$height);
 imagecopyresized($ni,$im,0,0,0,0,$width,$height,$srcW,$srcH);
 $cr = imagejpeg($ni,$dscFile);
 chmod($dscFile, 0777);
 
 if ($cr){
 $sm_File = $dscFile;
 return true;
 }else{
 $Error = 5;
 return $Error;
 }
 }
 }
 
 //显示错误参数
 function Err(){
 global $Error;
 return $Error;
 }
 
 //上传后的文件名
 function UpFile(){
 global $doUpFile, $Error;
 if ($doUpFile != ''){
 return $doUpFile;
 }else{
 $Error = 6;
 }
 }
 
 //上传文件的路径
 function filePath(){
 global $Directroy, $doUpFile, $Error;
 if ($doUpFile != ''){
 return $Directroy.$doUpFile;
 }else{
 $Error = 6;
 }
 }
 
 //缩略图文件名称
 function thumbMap(){
 global $sm_File, $Error;
 if ($sm_File != ''){
 return $sm_File;
 }else{
 $Error = 6;
 }
 }
 
 //显示版本信息
 function ieb_version(){
 return 'IEB_UPLOAD CLASS Ver 1.1';
 }
}
?>
使用方法:
//加载上传类
include('iebupload.class.php');
?>




无标题文档










if(isset($_REQUEST['scan'])){
//声明一个上传类
$upfos = new ieb_upload('file','upload');

/* ieb_upload( FormName, [Directroy, MaxSize])

  FormName: 文件域的名称,这个例子里用的是 file 。这个参数不能省略。
  Directroy: 保存上传文件的目录名称。此参数如果省略,文件将上传至该处理页目录中。
  MaxSize: 允许上传的文件的大小限制。默认值为 2097152 byte (即 2M)。
*/

//返回将要上传的文件名称
echo '文件名称:' . $upfos -> getName() . '
';

//返回文件后缀名
echo '文件类型:' . $upfos -> getExt() . '
';

//返回文件大小
echo '文件大小:' . $upfos -> getSize() . '
';

/* getSize( format )

  format: 返回文件大小的单位值。默认值为 B。
  B 为 byte
  M 为 MB
  例:getSize( 'B' );
*/

//随机生成的文件名
echo '随机文件:' . $upfos -> newName() . '
';

/* 建议使用随机生成的文件名,以避免上传重名的文件。
例如: $upfos -> upload ( $upfos -> newName());
*/ 

//上传文件
$upfos -> upload();

/* upload( filename )

  filename: 上传至服务器后生成这个文件名。默认值为原来的文件名。
*/

//生成缩略图
$upfos -> thumb();

/* thumb( [key, width, height] )

  key: 生成缩略图的关键字。默认值为"sm_"。如果上传的文件名为 12345.jpg,缩略图的文件名就为 sm_12345.jpg。
  width: 缩略图的宽度。默认值为 150 。
  height: 缩略图的高度。默认值为 113。
  例:$upfos -> thumb ( 'slt_', 200, 140);
*/

//返回生成的文件名
echo '生成文件:' . $upfos -> UpFile() . '
';

//返回文件的路径
echo '文件路径:' . $upfos -> filePath() . '
';

//返回缩略图的名称
echo '缩略图片:' . $upfos -> thumbMap() . '
';

//返回上传类版本信息
echo '版本信息:' . $upfos -> ieb_version() . '
';
}
?>

阅读(1613) | 评论(0) | 转发(0) |
0

上一篇:使用php上传文件

下一篇:php上传类

给主人留下些什么吧!~~