分享
 
 
 

自己写的一个PHP上传类

王朝php·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

主要功能:

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

//----------------------------------------------------------------------

//转发时请保留此声明信息,这段声明不并会影响你的速度!

//******************* IEB上传类 v1.1 *********************************

//作者:卢韦华

//网站:http://www.iebsoft.cn//电子邮件: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';

}

}

?>

使用方法:

<?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>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有