一个php上传类,包括缩图生成和使用例子 不指定

Else , 2010/09/01 10:22 , 代码片段,演示也有 , Comments(3) , Reads(3557) , Via Original
一个php上传类,包括缩图生成和使用例子

<?php

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';
}
}

//----------------------------------------------------------------------
//转发时请保留此声明信息,这段声明不并会影响你的速度!
//*******************   IEB上传类 v1.1 ***********
//作者:卢韦华
//网站:www.iebsoft.cn
//电子邮件:yagas60@21cn.com
//版权声明:版权所有,源代码公开,各种用途均可免费使用,但是修改后必须把修改后的文件
//发送一份给作者.
//****************************************************
//
?>



使用方法:


<?php
//加载上传类
include('ieb_upload.inc');
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body style="font-size:12px;">
<form action="" method="post" enctype="multipart/form-data" name="form1">
<input type="file" name="file">
<input type="submit" name="Submit" value="提交">
<input name="scan" type="hidden" id="up" value="true">
</form><b /><br/>

<?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() . '<br/>';

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

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

/* getSize( format )

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


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

/* 建议使用随机生成的文件名,以避免上传重名的文件。
例如: $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() . '<br/>';

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

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

//返回上传类版本信息
echo '版本信息:' . $upfos -> ieb_version() . '<br/>';
}
?>
</body>
</html>
kjl243243t Email Homepage
2010/09/13 16:35
智力游戏:两蚂蚁看见一只很大的梨(猜三个国家名):咦,大梨(意大利);噢,大梨(澳大利亚);嘻,搬呀(西班牙).
PengRay Email Homepage
2010/09/12 10:37
先看看,需要的时候过来拿,呵呵~
Else Email Homepage
2010/09/01 10:25
收藏一下!
Pages: 1/1 First page 1 Final page
Add a comment

Nickname

Site URI

Email

Enable HTML Enable UBB Enable Emots Hidden Remember [Login] [Register]