PHP上傳圖片類

雲棲希望。發表於2017-12-12
<?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
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上傳圖片類,如需轉載請自行聯絡原博主。


相關文章