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上傳圖片類
使用方法
|
本文轉自部落格園知識天地的部落格,原文連結:PHP上傳圖片類,如需轉載請自行聯絡原博主。
相關文章
- php圖片上傳之圖片轉換PHP
- PHP配置CKEditor上傳圖片PHP
- 編寫還可以的php 圖片上傳類程式碼PHP
- php+WebUploader圖片批量上傳PHPWeb
- PHP實現圖片(檔案)上傳PHP
- Retrofit2.0:上傳圖片到PHPPHP
- php圖片上傳之檔案安全PHP
- php5.5CURL圖片上傳廢棄@PHP
- 上傳圖片
- PHP CURL 上傳二進位制流圖片PHP
- Ajax+PHP實現非同步圖片上傳PHP非同步
- PHP仿微信多圖片預覽上傳功能PHP
- php圖片上傳之分散式儲存FastDFSPHP分散式AST
- Retrofit+RxJava上傳圖片上傳圖片到後臺RxJava
- 【easyui 】上傳圖片UI
- 上傳圖片jsJS
- 圖片上傳及圖片處理
- php單張圖片上傳外掛免重新整理,相容手機,可實現類似微信圖片上傳的體驗PHP
- php 非同步上傳圖片幾種方法總結PHP非同步
- java,springboot + thymeleaf 上傳圖片、刪除圖片到伺服器、本地,壓縮圖片上傳(有些圖片會失真),原圖上傳JavaSpring Boot伺服器
- 多圖片formpost上傳ORM
- input file圖片上傳
- 圖片檔案上傳
- 測試圖片上傳
- PHP+jQuery+Ajax實現多圖片上傳介紹PHPjQuery
- thinkphp達到UploadFile.class.php圖片上傳功能PHP
- PbootCMS上傳圖片變模糊、上傳圖片尺寸受限的解決方案boot
- vue 上傳圖片進行壓縮圖片Vue
- Ueditor 上傳圖片自動新增水印(只能上傳圖片,上傳檔案報錯)
- 獲取本地圖片或拍照,進行頭像圖片的上傳的工具類地圖
- 學姐,影片上傳不了,我上傳了圖片
- PHP+七牛雲端儲存上傳圖片程式碼片段PHP
- Laravel 使用 FastDFS 上傳圖片LaravelAST
- koa 圖片上傳詳解
- Vue圖片裁剪上傳元件Vue元件
- 圖片上傳方案詳解
- js上傳圖片壓縮JS
- vue圖片預覽上傳Vue