设为首页 收藏本站
查看: 1312|回复: 0

[经验分享] PHP上传图片类

[复制链接]

尚未签到

发表于 2015-8-24 13:16:20 | 显示全部楼层 |阅读模式
  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
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>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-103521-1-1.html 上篇帖子: PHP 在线 编辑 解析 下篇帖子: php通过文件头检测文件类型通用类(zip,rar…)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表