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
'K'
:
return
(
$_FILES
[
$FormName
][
'size'
]) / (1024);
break
;
case
'M'
:
return
(
$_FILES
[
$FormName
][
'size'
]) / (1024 * 1024);
break
;
}
}
}
// 獲取文件類型
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'
,
'tmp'
);
/**
* 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>
php上傳圖片類
使用方法
|