图片缩略图

**主要功能:
** 文件上传,获取文件名,获取文件大小,随机生成新文件名,获取文件类型,图片生成缩略图,返回缩略图文件名,返回上传后生成的文件的文件名,返回上传后的文件路径

下载地址: http://iebsoft.512j.com/downloads/upfiles.rar (内附使用说明)

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

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

使用方法:

1   
2//加载上传类   
3include('ieb_upload.inc');   
 1<html>
 2<head>
 3<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
 4<title>无标题文档</title>
 5</head>
 6<body style="font-size:12px;">
 7<form action="" enctype="multipart/form-data" method="post" name="form1">
 8<input name="file" type="file"/>
 9<input name="Submit" type="submit" value="提交"/>
10<input id="up" name="scan" type="hidden" value="true"/>
11</form><b></b>
12   
13  

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

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

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

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

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

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

/* getSize( format )

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

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

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

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

/* upload( filename )

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

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

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

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

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

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

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

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

1</body>
2</html>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus