uplodify 结合 imgareaselect 实现头像截图上传

只要你付出比别人更多一点点,你会成功的。


jquery + uploadify 实现图片异步上传。(主要用于个人中心的会员头像的剪切上传)

首先下载uploadifyimgareaselect插件。首先加载jq库和upload插件js和imgareaselect插件(要先引入jq库)。

先实现图片上传 首先用

        <form>
            <input type="file" name="fupload" id="fupload" multiple="true">  //multiple 实现多张图片上传
        </form>

<script type="text/javascript">
        $(function(){
            $("#fupload").uploadify({
                'debug'        : true,                              //开启调试
                'fileObjName'  : 'file',                        //定义在php文件中接受的键值 $_get['file'];
                'fileTypeExts' : '*.jpg; *.png; *.gif',    //选择图片时js允许上传的图片类型
                'buttonText'   : '上传图片',                  //在按钮上显示的字
                'swf'             : '__PUBLIC__/uploadify/uploadify.swf',  //上传图片的swf
                'uploader'     : '__URL__/upload',      //指定当前php控制器中的方法
                'onUploadSuccess'  : function(file,data,response){  //上传成功处理函数
                    var data = parseJSON(data);        //获取json数据
                    if(response){  //如果上传成功
                        $("#crop").children('img').attr('src','__ROOT__/Public/uploads                           /'+data.name+'?random'+Math.random());      //添加到img标签中 用于显示上传之后的图片和imgareaselect剪切用
                    }else{
                        alet(data.error);
                    }
                    
                }
            });
        });
    </script>

uploadify在线手册地址 :http://www.yauld.cn/uploadifydoc/

imgareaselect 参考地址:http://www.jb51.net/article/28485.htm

之后在php中进行文件上传即可。

php上传处理方法代码:

/**
     *上传处理   
     */

    public function upload(){
        $rst=array();                           //用于返回结果给前台
        $file=$_FILES['file'];           //接收uploadify中的file键值
        $name=$file['name'];             //获取上传文件名
        $tmp=$file['tmp_name'];      //内存缓存中的名字(暂时)
        $type=$file['type'];              //文件的类型
        $size=$file['size'];               //文件大小
        $suffix=end(explode('.',$name)); //获取文件的后缀
        $path='Public/uploads/';       //文件上传路径  从根目录开始
        

        //允许通过的文件类型
        $allow_type=array('png','jpg','gif','jpeg','ico');
        if(in_array($suffix,$allow_type) && $size<10000000){  //限定文件大小
          
            $name = 'frank'.date('his').rand(0,100).'.'.$suffix;      //重新定义文件名
            $save_info = move_uploaded_file($tmp,$path.$name); //文件上传 move_uploaded_file看php手册
            if($save_info){
                $rst['success'] = '上传成功';
                $rst['name'] = $name;
            }else{
                $rst['error']='文件上传失败';
            }
        }else{
            $rst['error']='只能上传png,jpg,gif,jpeg,ico格式的图片 或者是文件过大';
        }
        echo json_encode($rst);   //通过json方式返回信息给前台做处理
    }



imgareaselect 插件的使用。参考地址:http://www.jb51.net/article/28485.htm;

imgareaselect 获取到图片(crop图片),同时把图片信息赋给预览图  之后配置各个选项(如:显示比例等)之后在选择的之后动态分配给预览图高、宽 左边距和上边距 通过css来控制显示在预览图中的效果,代码如下:

function Preview(coords){//coords  是选择时候剪切的图像对象  可以获取信息
            //  剪切图片的宽高
            var img_width = $('#cropbox').width();
            var img_height = $('#cropbox').height();
              //根据包裹的容器宽高,设置被除数
              var rx = 100 / coords.w;
              var ry = 100 / coords.h;
              $('#crop-preview-100').css({
                width: Math.round(rx * img_width) + 'px',
                height: Math.round(ry * img_height) + 'px',
                marginLeft: '-' + Math.round(rx * coords.x) + 'px',
                marginTop: '-' + Math.round(ry * coords.y) + 'px'
              });



。当选择结束之后把具体的参数(左上角的x坐标,左上角的y坐标,需要剪裁的宽和高)如下代码:

onSelectEnd: function (c){    //选择结束时动态赋值,该值是最终传给程序的参数!
                        $('#x').val(c.x);//需裁剪的左上角X轴坐标
                        $('#y').val(c.y);//需裁剪的左上角Y轴坐标
                        $('#w').val(c.w);//需裁剪的宽度
                        $('#h').val(c.h);//需裁剪的高度
                  }

获取到input当中提交给后台php,之后php来真正的实现截图。


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值