php文件上傳類

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章