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

实际效果如图所示:

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>

Yii2.0 集成使用富头像上传编辑器的更多相关文章

  1. js实现裁剪头像上传编辑器

    插件: 1.富头像上传编辑器是一款支持本地上传.预览.视频拍照和网络加载的flash头像编辑上传插件,可缩放.裁剪.旋转.定位和调色等. http://www.fullavatareditor.com ...

  2. 使用jquery插件uploadfive、jcrop实现头像上传

    1.html页面部分代码:(实现选着图片时,jcrop能够刷新图片) <script type="text/javascript"> $(function(){ $(& ...

  3. 强大的flash头像上传插件(支持旋转、拖拽、剪裁、生成缩略图等)

    今天介绍的这款flash上传头像功能非常强大,支持php,asp,jsp,asp.net 调用 头像剪裁,预览组件插件. 本组件需要安装Flash Player后才可使用,请从http://dl.pc ...

  4. 【Bootstrap-插件使用】Jcrop+fileinput组合实现头像上传功能

    作者:Dreawer链接:https://zhuanlan.zhihu.com/p/24465742来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者:梦游的龙猫(转 ...

  5. [Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能

    很久没有更新博客了,再不写点东西都烂了. 这次更新一个小内容,是两个插件的组合使用,实现头像上传功能. 业务需求: 头像上传功能,要对上传的文件进行剪切,且保证头像到服务器时必须是正方形的. 优化&l ...

  6. PHP+ajaxfileupload与jcrop插件结合 完成头像上传

    昨天花了点时间整合了一下头像插件 东拼西凑的成果 先来看下效果

  7. struts 头像上传

    java代码: 1 package cn.itcast.nsfw.user.action; import java.io.File; import java.io.IOException; impor ...

  8. 【javascript】html5中使用canvas编写头像上传截取功能

    [javascript]html5中使用canvas编写头像上传截取功能 本人对canvas很是喜欢,于是想仿照新浪微博头像上传功能(前端使用canvas) 本程序目前在谷歌浏览器和火狐浏览器测试可用 ...

  9. Canvas处理头像上传

    未分类 最近社区系统需要支持移动端,其中涉及到用户头像上传,头像有大中小三种尺寸,在PC端,社区用Flash来处理头像编辑和生成,但该Flash控件的界面不友好而且移动端对Flash的支持不好,考虑到 ...

随机推荐

  1. 设置Android让EditText不自动获取焦点

    最近在做一个练手项目的时候,因为默认进入的页面有一个EditText控件,每次进入的时候会自动获取焦点弹出软键盘,体验非常不好,后来在网上找到了解决办法:在EditText的父级控件中找到以下属性,设 ...

  2. CF-811B

    B. Vladik and Complicated Book time limit per test 2 seconds memory limit per test 256 megabytes inp ...

  3. 2、CDH组件安装

    一.zookeeper 1.安装 继续->完成: 二.HDFS 1.安装 继续->完成: 三.yarn.hive 1.安装yarn 继续->完成: 2.安装hive 继续->完 ...

  4. 1、CDH集群搭建

    一.准备工作 1.系统环境 系统centos6.5 节点三台: 192.168.1.130 192.168.1.131 192.168.1.132 1.所有节点关闭防火墙 service iptabl ...

  5. 牛客多校5 A-gpa(01分数规划)

    gpa 链接:https://www.nowcoder.com/acm/contest/143/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言 ...

  6. 如何部署JavaWeb应用

    准备 公网主机一台(推荐云服务器) 数据库安装包 JDK安装包 Tomcat安装包 WAR包(web应用包) 部署 安装所需软件,并测试基本环境是否可用 将WAR包解压至Tomcat目录下的webap ...

  7. java面试一定会遇到的56个面试题

    1.问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 2.问题:Java里的传引用和传值的区别是什么? 答案:传引用是指传 ...

  8. C++11之lambda表达式解析

    什么是Lanmbda? 简短函数,就地书写.常用于向函数(算法)传递函数参数. 语法 Lambda 表达式,[capture](paras)mutable->return type{statem ...

  9. "Mysql has gone away"的几种可能

    现象: 在本地利用Flask自带的WSGI服务进行调试没有问题后,通过Gunicorn进行部署. 但是在一晚上没有访问之后,第二天再次访问会出现500(Internal error). 原因: 通过追 ...

  10. 记微软OpenHack机器学习挑战赛

    有幸参加了微软OpenHack挑战赛,虽然题目难度不大,但是很有意思,学到了很多东西,还有幸认识了微软梁健老师,谢谢您的帮助!同时还认识同行的很多朋友,非常高兴,把这段难忘的比赛记录一下~~也分享一下 ...