zoukankan      html  css  js  c++  java
  • 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 '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';
     }
    }
    ?>


    使用方法:

    <?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','upload');

    /* 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。
      缩略图的宽度。默认值为 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>
  • 相关阅读:
    对dedecms、php168,phpcms、VeryCMS、DiyPage五款开源整站系统的简单评点(
    [转+总结]Linux虚拟系统安装VMware Tools总结
    VMware虚拟机的联网(图)
    自己动手架设linux下Web服务器(图)4
    免费三个月的美国vps:JUMPLINE,速度不错
    中文 CentOS 攻略
    linux不能上网如何配置
    格式化字符串
    gitlab在push代码的时候报错
    运行ntpdate报错:Temporary failure in name resolution
  • 原文地址:https://www.cnblogs.com/tatsuya/p/1287947.html
Copyright © 2011-2022 走看看