PHP圖片上傳類(支持自定義路徑、大小、文件名稱、縮略圖)

wp5x 9年前發布 | 2K 次閱讀 PHP

<?php
class pic_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';
}

} ?></pre>

 本文由用戶 wp5x 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!