发布两上PHP类(邮件发传及文件上传)

原创 2007年10月02日 17:57:00
email.php
<?php
/*####################################
##  author:yagas                                                   ##
##  email:yagas@sohu.com                              ##
##  website:http://www.iebsoft.com                  ##
####################################*/

 

//SMTP电子邮件发送
class ieb_email{
 var $smtp;
 var $port;
 var $user;
 var $password;
 var $contentType;
 var $header;
 
 function ieb_email($SMTP, $USER, $PASSWORD, $PORT='25'){
  $this->user = $USER;
  $this->password = $PASSWORD;
  $this->smtp = $SMTP;
  $this->port = $PORT;
  
  $crlf = "/r/n";
  $this->contentType = "Content-type: text/plain; charset=/"gb2312/"".$crlf;
  $this->header = "MIME-Version:1.0".$crlf;
 }
 
 function sendmail($FROM, $TO, $SUBJECT, $BODY, $ISHTML=true){
  $socket = fsockopen($this->smtp, $this->port);
  if(!$socket){
   return 1;
   exit;
  }
  
  set_socket_blocking($socket,true);
        fputs($socket,"HELO try /r/n");
        $result = fgets($socket);
       
        fputs($socket,"AUTH LOGIN /r/n");
        $result = fgets($socket);
       
        fputs($socket,base64_encode($this->user)."/r/n");
        $result = fgets($socket);       
        fputs($socket,base64_encode($this->password)."/r/n");
        $result = fgets($socket);
       
        fputs($socket,"MAIL FROM: <$FROM>/r/n");
        $result = fgets($socket);
        if(substr($result, 0, 3) != "235"){
         return $result;
         exit;
        }
       
        fputs($socket,"RCPT TO: <$TO>/r/n");
       
        fputs($socket,"DATA/r/n");
       
        $crlf = "/r/n";
        $mail = $this->header;
       
        //是否为HTML邮件
        if($ISHTML){
         $mail .= "Content-type: text/html; charset=/"gb2312/"".$crlf;
        }else{
         $mail .= "Content-type: text/plain; charset=/"gb2312/"".$crlf;
        }
       
        $mail .= "From: $FROM".$crlf;
        $mail .= "To: $TO".$crlf;
        $mail .= "Subject: $SUBJECT".$crlf.$crlf;
        $mail .= $BODY.$crlf.".".$crlf;
       
        fputs($socket, $mail);
        fputs($socket, "QUIT/r/n");
       
        fclose($socket);
        $socket = NULL;
        return 0;
 }
 
}


/*
//声明对象

 

$mail = new ieb_email("SMTP地址", "用户名", "密码", "端口");

//发送邮件
$send = $mail->sendmail("发件人邮箱", "收件人邮箱", "邮件标题", "邮件内容", "是否为HTML邮件");

如果 $send 等于0,则发送成功,不为0则为发送失败
*/


?>

 




upload.php
 <?php
/*####################################
##  author:yagas                                                   ##
##  email:yagas@sohu.com                              ##
##  website:http://www.iebsoft.com                  ##
####################################*/
class ieb_upload{
 var $path = null;
 var $cpr = null;
 
 //设置上传的完整路径,如:
 //Windows    d:/uploads
 //Linux      /wwwroot/uploads
 function setServerPath($path){
  $this->path = $path;
 }
 
 //设置文件表单的名称,对应 <input type="file" name="ieb_file" />的name
 function setFileFormName($name){
  $this->cpr = $_FILES[$name];
 }
 
 //取得上传文件的类型信息,返回如:image/jpeg
 function getType(){
  return $this->cpr['type'];
 }
 
 
 //取得上传文件的大小信息
 //参数
 //b     返回单位为byte
 //k     返回单位为kb
 //m     返回单位为MB

 function getSize($type='b'){
  if($type == 'b'){
   return $this->cpr['size'];
  }elseif($type == 'm'){
      $size = ($this->cpr['size']/1024)/1024;
      return round($size, 2);
  }elseif($type == 'k'){
   $size = $this->cpr['size']/1024;
      return round($size, 2);
  }
 }
 
 
 //获取上传的图片的信息
 //参数:
 //width    返回已上传的图片的宽度
 //height   返回已上传图片的高度
 //type     返回已上传图片的类型,如 .jpg

 function getImageInfo($type){
  $image = getimagesize($this->cpr['tmp_name']);
  list($width,$height,$attr,$src) = each($image);
  switch($type){
   case 'width':
    return $width;
    break;
    
   case 'height':
    return $height;
    break;
    
   case 'type':
    return $this->imageExt($attr);
    break;
    
   default:
    return $src;
    break;
  }
 }
 
 //返回已上传文件的后缀名,如 .rar
 function getExt(){  
  $type = $this->getType();
  $start_position = strpos($type, '/');
  $type = substr($type, 0, $start_position);
  
  if($type == 'image'){
   return $this->getImageInfo('type');
  }else{
   $start_position = strpos($this->cpr['name'], '.');
   $ext = substr($this->cpr['name'], $start_position);
   return $ext;
  }
 }
 
 
 //将上传的文件移动到指定的上传目录中
 //参数
 //new_name  文件上传后的名称,如不指定参数,将自动随机命名已上传的文件名称
 //如果上传失败,将返回false,上传成功,将返回文件名

 function upload($new_name=''){  
  if($new_name == ''){
   $f_name = date('YmdHis', time()).rand(0, 9).$this->getExt();
  }else{
   $f_name = $new_name.$this->getExt();
  }
  $mv = false;
  if(is_uploaded_file($this->cpr['tmp_name'])){
   $mv = move_uploaded_file($this->cpr['tmp_name'], $this->path.'/'.$f_name);
   if($mv){
     chmod($this->path.'/'.$f_name, '0777');
     return $f_name;
   }else{
    return false;
   }
  }
 }
 
 private function imageExt($int){
  switch($int){
   case 1:
    return ".gif";
    break;
    
   case 2:
    return ".jpg";
    break;
    
   case 3:
    return ".png";
    break;
    
   case 4:
    return ".swf";
    break;
    
   case 6:
    return ".bmp";
    break;
    
   case 7:
   case 8:
    return ".gif";
    break;
    
   default:
    return ".jpg";
    break;
  }
 }
}
?>
下载地址:http://www.iebsoft.com/downloads/ieb_phpc.rar
版权声明:本文为博主原创文章,未经博主允许不得转载。

php文件上传类(整理)

  • 2010年06月06日 13:25
  • 33KB
  • 下载

第23天(就业班) 文件上传及文件下载、邮件发送

1.课程回顾 一、 监听器 1. 生命周期监听器 ServletRequestListener HttpSessionListener ServletContextListener 2. ...

php文件上传类,UPLOAD.CCLASS

  • 2011年05月17日 17:05
  • 5KB
  • 下载

php文件上传类(自己写的)

  • 2017年05月07日 00:05
  • 8KB
  • 下载

php的curl,uploadfile上传文件,xml解析,邮件发送,动态时间,去重,等

/** * 请求接口返回内容 * @param string url [请求的URL地址] * @param string params [请求的参数] ...

PHP设计经典文件上传类

  • 2014年08月09日 17:57
  • 40KB
  • 下载

文件上传php类

  • 2015年06月03日 11:50
  • 4KB
  • 下载

php可生成缩略图的文件上传类实例

这篇文章主要介绍了php可生成缩略图的文件上传类,给出了完整的类文件代码及其相应的用法示例,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了php可生成缩略图的文件上传类及其用法。分享给大...
  • xz_src
  • xz_src
  • 2017年06月22日 13:54
  • 266

php文件上传类

  • 2011年11月29日 11:13
  • 6KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:发布两上PHP类(邮件发传及文件上传)
举报原因:
原因补充:

(最多只允许输入30个字)