PHP 将图片转化成base64编码和解码遇见的坑

这段时间,一直在搞邮件群发的系统,当发送带有图片的话,那本地的路径访问就有问题了。所以当时尝试将图片base64编码化,一起发送过去。

但是  注意:  尝试的结果是各大主流邮箱平台全部拒收,视为垃圾邮件!!!!!!!!!!

没办法只能在服务器上新建个文件夹来存放读取的图片.......

好了 不多说了  上代码~

class img{

//传入图片地址,得到图片的Base64编码

    public function img2Base64($img_file){

    $img_base64 = '';

    $app_dir = dirname(dirname(dirname(__FILE__)));//根据你的需要得到绝对路径

    $app_img_file = $app_dir . $img_file;   //组合出真实的绝对路径

    $img_info = getimagesize($app_img_file);/取得图片的大小,类型等

    $fp = fopen($app_img_file, "r");     //图片是否可读权限

     if ($fp) {

      $file_content = chunk_split(base64_encode(fread($fp, filesize($app_img_file))));//base64编码

      switch ($img_info[2]) {  //判读图片类型

      case 1:

               $img_type = "gif";

                break;

      case 2:

             $img_type = "jpg";

              break;

     case 3:

              $img_type = "png";

             break;

        }

        $img_base64 = 'data:image/' . $img_type .';base64,' . $file_content;//合成图片的base64编码

       fclose($fp);

 

     }

}

//调用方法

include "../Model/img.Class.php";

$Model = new img();

$img_dir = '\test\img\cc.jpg'; //绝对的路径

$img_base64 = $Model->img2Base64($img_dir);//调用使用的方法--得到图片

echo $img_base64;

echo '<img src="'.$img_base64.'">'; 

注意 这个转化成base64的图片无法作为背景图片!!!!!!!!!  我尝试过很多办法  百度翻了好多页 也没找到方法  这个只能作为IMG 标签来调用!!!!!!!!!

posted @ 2017-02-28 09:11  醉梦伊人  阅读(5445)  评论(1编辑  收藏  举报