SAE云平台上传图片和发送邮件

 

1.远程图片保存至Storage

  其中public是Storage中的容器名,"目录1/目录2/"是容器下的路径 $file_content 是得到的文件数据

1 $s = new SaeStorage();
2 $file_content= file_get_contents('http://abc.pmg');   //括号中的为远程图片地址
3 $s->write ( 'public' ,  '目录1/目录2/abc.png' , $file_content); 
    
2.sae上的上传图片
   用thinkphp框架内置上传类能够完美兼容sae环境,只是在sae上上传成功后返回的路    径是文件名,需要手动加上上传的容器路径,即在项目中需要替换__ING__或者是__PUBLIC__    的路径,得到路径的方法如下:
1 $storage = new \SaeStorage();                      //实例化SaeStorage类
2 $uploadsae = $storage->getUrl('public','Upload');  //得到sae的上传容器路径 
 其中public是Storage中的容器名,"Upload"是容器下的路径;
 替换方法可采用tp的模板替换方法:
1 'TMPL_PARSE_STRING'    =>    array(
2      '__ING__'    => $st->getUrl('public','upload'),
3      '__PUBLIC__' => $st->getUrl('application','user')
4 
5 )

 

3:生成缩略图并保存在相应的容器中

   如果用tp的生成缩略图方法也可以在sae上成功运行,下面使用sae提供的方法生成缩略图
 1 $f = new \SaeFetchurl();
 2 $img_data = $f->fetch(“图片url”); //有文件名读取文件
 3 $img = new \SaeImage();
 4 $img->setData($img_data);
 5 $img->resize($width,$height);    //指定缩略图的宽和高
 6 $new_data = $img->exec();        //执行处理并返回处理后的二进制数据
 7 if ($new_data === false){        //图片处理失败时输出错误
 8         return false;
 9 }
10 $s->write ( 'public' , '目录1/目录2/abc.png' , $file_content);
11 $img->exec( 'jpg' , true );  //如果不想保存,而是想输出则用:

4:不带html的邮件(不支持html)
1 $mail = new \SaeMail();
2 $body = "亲爱的用户:感谢您在在本网站注册了新帐号。请点击链接激活您的帐号"3 $mail->setAttach(array("my_photo"=>"照片的二进制数据"));//如果发送图片
4 $ret = $mail->quickSend("收件人的邮箱", '邮件标题' , $body , '发送人的邮箱' , '发送人邮箱密码','smtp.139.com',25); //smtp.139.com是主机号,25是SMTP服务器端口
5 $mail->clean();     //清楚之前的对象用于循环发送

 

5:带html的邮件(支持html)

       其中setOpt()只在send()发送命令中起作用,在快速发送quickSend()中不起作用;

 1 $mail = new \SaeMail();
 2 $mail->setOpt(array(
 3      'from'          => 'abc@sina.com', //发件邮箱例如abc@sina.com
 4      'to'            => $data['email'],      //接收信箱  
 5      'smtp_host'     => 'smtp.139.com',  //smtp服务器
 6      'smtp_port'     => 25,  //port
 7      'smtp_username' => 'abc@sina.com', //账户全名,abc@sina.com,要和上面的一样
 8      'smtp_password' => '发送邮箱吗密码',
 9      'subject'       => '标题',
10      'content'       => $body, //发送内容
11      'content_type'  => 'html'   //发送格式,默认是text
12      )
13 );
14 $ret = $mail->send();
15 $mail->clean();
16 if($ret == false){
17       var_dump($mail->errno(), $mail->errmsg()); //打印出错信息
18       return false;
19 }else{
20       return true;
21 }

想要了解跟多参数:http://apidoc.sinaapp.com/class-SaeMail.html

posted @ 2015-03-28 09:59  赵亚飞  阅读(558)  评论(0编辑  收藏  举报