发布两上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 smtp邮件发送的标题乱码等一系列问题

    最近要写一个php邮件发送的程序,于是上网找了一下smtp邮件发送方面的资料,下了一个smtp的类 (网上搜索,不贴了,有点麻烦),支持html格式发送。 于是利用到我的php框架中,小测了一...
  • alpeace
  • alpeace
  • 2007年06月06日 16:16
  • 3882

php使用upload封装类上传文件

index.html name: up pic: up pic: up pic: up pic: upload.php
  • navioo
  • navioo
  • 2016年07月04日 18:07
  • 5704

关于PHP发送邮件的两个类(找了好久......)

需要用PHP发送邮件,不想要PHPmailer那么复杂,找来找去,总算找到了一个好用的,分享出来,PHP邮件发送类,一共包含两个文件.代码如下: sent_mail.php ...
  • qq_16542775
  • qq_16542775
  • 2015年08月20日 22:51
  • 4037

php如何CURL 上传文件到其他服务器

今天想用php curl上传文件到别的服务器,百度了下找到一个方法, $ch = curl_init(); $data = array('name' => 'Foo', 'file' ...
  • sas6216402fx
  • sas6216402fx
  • 2016年12月24日 18:09
  • 790

手动实现完全加强版js文件上传到php

最近做项目,要用到js上传大文件插件,网上找了很多上传插件,最后试着用了jquery file upload插件,然后确实很简单就可以上传了,demo也可以直接用,但是具体的实现逻辑本封装了,而我木有...
  • littlelove2013
  • littlelove2013
  • 2017年03月20日 14:29
  • 840

PHP封装成类(文件上传)

  • zhimab
  • zhimab
  • 2017年07月23日 08:04
  • 189

利用phpmail封装类来发送邮件

1.首先写一个发送邮件页面index.html:(比较简单,不要在意)     代码: PHP利用smtp类发送邮件范例 收件人邮箱: 主题: 内容:         ...
  • xuexiaoxu1990
  • xuexiaoxu1990
  • 2015年12月14日 17:15
  • 2494

一个经典的PHP文件上传类分享 使用心得

一、需求分析   要球自定义文件上传类,即在使用非常简便的前提下,又可以完成以下几项功能:   ①支持单个文件上传。   ②支持多个文件上传。   ③可以自己指定上传文件的保存位置,可以设置上...
  • qq_36427770
  • qq_36427770
  • 2017年03月15日 15:29
  • 216

封装原生的文件上传类

封装的上传类
  • lwc863481702
  • lwc863481702
  • 2016年09月23日 20:47
  • 832

腾讯-信鸽实现消息推送

腾讯-信鸽实现消息推送
  • u014539465
  • u014539465
  • 2015年06月13日 18:15
  • 5370
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:发布两上PHP类(邮件发传及文件上传)
举报原因:
原因补充:

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