Yii2.0 集成使用富头像上传编辑器

时间:2022-09-11 21:41:08

在开发过程中,我们会用到头像上传的功能。这里给大家推荐一款比较流行的头像上传组件,FullAvatarEditor 2.3(富头像上传编辑器)。

实际效果如图所示:

Yii2.0 集成使用富头像上传编辑器

1.下载组件,下载地址:http://www.fullavatareditor.com/download.html

2.在所需页面上导入相关js文件:

<script type="text/javascript" src="FullAvatarEditor2.3/scripts/swfobject.js"></script>
<script type="text/javascript" src="FullAvatarEditor2.3/scripts/fullAvatarEditor.js"></script>

3.在页面上需要一个ID唯一的标签,<p>、<div>都可以:

<div>
    <p id="swfContainer">本组件需要安装Flash Player后才可使用,请从<a href="http://www.adobe.com/go/getflashplayer">这里</a>下载安装。</p>
   </div>

4.在页面嵌入如下代码:(注意fullAvatarEditor.swf与expressInstall.swf的路径问题)

<script type="text/javascript">
   swfobject.addDomLoadEvent(function () {
      var swf = new fullAvatarEditor("FullAvatarEditor2.3/fullAvatarEditor.swf", "FullAvatarEditor2.3/expressInstall.swf", "swfContainer", {
      id : 'swf',
      upload_url : 'FullAvatarEditor2.3/php/upload.php',   //上传文件接口(可以带url参数)
      method : 'post',    //传递到上传接口中的查询参数的提交方式。更改该值时,请注意更改上传接口中的查询参数的接收方式
      src_upload : 0,    //是否上传原图片的选项,有以下值:0-不上传;1-上传;2-显示复选框由用户选择
      avatar_box_border_width : 0,
      avatar_sizes : '200*200|50*50',    // 自定义头像尺寸
      avatar_sizes_desc : '200*200像素|50*50像素'   // 与上联合起来使用 
     }, function (msg){ // 回调函数
      switch(msg.code)
      {
       //case 1 : alert("页面成功加载了组件!");break;
       //case 2 : 
        //alert("已成功加载图片到编辑面板。");
        //document.getElementById("upload").style.display = "inline";
        //break;
       case 3 :
        if(msg.type == 0)
        {
         alert("摄像头已准备就绪且用户已允许使用。");
        }
        else if(msg.type == 1)
        {
         alert("摄像头已准备就绪但用户未允许使用!");
        }
        else
        {
         alert("摄像头被占用!");
        }
       break;
       case 5 : 
        if(msg.type == 0)
        {
         if(msg.content.sourceUrl)
         {

// 保存原图成功的提示信息,如果不保存原图则不需要
          alert("原图已成功保存至服务器,url为:\n" + msg.content.sourceUrl+"\n\n" + "头像已成功保存至服务器,url为:\n" + msg.content.avatarUrls.join("\n\n")+"\n\n传递的userid="+msg.content.userid+"&username="+msg.content.username);
         }
         else
         {

// 上传成功后ajax提交到服务器处理头像信息写入对应数据库中
          $.ajax({
            type:'POST',
            url:'<?php echo Url::to(['sys-admin-info/save-avatar'])?>',
            data:{avatarData:msg.content.avatarUrls}, // 包含头像的路径信息,数组形式
            dataType:'json',
            success:function(result){
               if(result.success){
               $.messager.alert('提示',result.message);
            }else{
               $.messager.alert('错误',result.message);
            }
            }
          });
         }
        }
       break;
      }
     }
    );
    };
            });
        </script>