php 上传头像 裁剪插件,PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁_PHP教程
发布日期:2021-06-24 11:36:33 浏览次数:2 分类:技术文章

本文共 2679 字,大约阅读时间需要 8 分钟。

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

01042CH2-0.png?20145984510

1.先使用ajaxfileupload插件做异步上传。这个地方我本来想做个上传进度的效果,但技术有限失败了。上传按钮我还做了一个文件大小的限制,但是由于浏览器兼容性的问题,不完美在IE6--IE9之间还有很多问题需要解决

getFileSize函数是用于判断文件大小的函数

复制代码 代码如下:

function getFileSize(fileName) {

var byteSize = 0;

//console.log($("#" + fileName).val());

if($("#" + fileName)[0].files) {

var byteSize = $("#" + fileName)[0].files[0].size;

}else {

//此处由于有浏览器兼容问题 还没完成大小判断的逻辑

}

//alert(byteSize);

byteSize = Math.ceil(byteSize / 1024) //KB

return byteSize;//KB

}

2.按钮上传事件绑定

复制代码 代码如下:

$("#btnUpload").click(function () {

var allowImgageType = ['jpg', 'jpeg', 'png', 'gif'];

var file = $("#file1").val();

//获取大小

var byteSize = getFileSize('file1');

//获取后缀

if (file.length > 0) {

if(byteSize > 2048) {

alert("上传的附件文件不能超过2M");

return;

}

var pos = file.lastIndexOf(".");

//截取点之后的字符串

var ext = file.substring(pos + 1).toLowerCase();

//console.log(ext);

if($.inArray(ext, allowImgageType) != -1) {

ajaxFileUpload();

}else {

alert("请选择jpg,jpeg,png,gif类型的图片");

}

}

else {

alert("请选择jpg,jpeg,png,gif类型的图片");

}

});

3.在上传成功后返回图片路径,并初始化图片裁剪。图片裁剪就直接用ajax请求到php

复制代码 代码如下:

function ajaxFileUpload() {

$.ajaxFileUpload({

url: 'action.php', //用于文件上传的服务器端请求地址

secureuri: false, //一般设置为false

fileElementId: 'file1', //文件上传空间的id属性

dataType: 'json', //返回值类型 一般设置为json

success: function (data, status) //服务器成功响应处理函数

{

//var json = eval('(' + data + ')');

//alert(data);

$("#picture_original>img").attr({src: data.src, width: data.width, height: data.height});

$('#imgsrc').val(data.path);

//alert(data.msg);

//同时启动裁剪操作,触发裁剪框显示,让用户选择图片区域

var cutter = new jQuery.UtrialAvatarCutter({

//主图片所在容器ID

content : "picture_original",

//缩略图配置,ID:所在容器ID;width,height:缩略图大小

purviews : [{id:"picture_200",width:200,height:200},{id:"picture_50",width:50,height:50},{id:"picture_30",width:30,height:30}],

//选择器默认大小

selector : {width:200,height:200},

showCoords : function(c) { //当裁剪框变动时,将左上角相对图片的X坐标与Y坐标 宽度以及高度

$("#x1").val(c.x);

$("#y1").val(c.y);

$("#cw").val(c.w);

$("#ch").val(c.h);

},

cropattrs : {boxWidth: 500, boxHeight: 500}

}

);

cutter.reload(data.src);

$('#div_avatar').show();

},

error: function (data, status, e)//服务器响应失败处理函数

{

alert(e);

}

})

return false;

}

$('#btnCrop').click(function() {

$.getJSON('action2.php', {x: $('#x1').val(), y: $('#y1').val(), w: $('#cw').val(), h: $('#ch').val(), src: $('#imgsrc').val()}, function(data) {

alert(data.msg);

});

return false;

});

4.HTML文件代码如下

复制代码 代码如下:

php-weizijiaocheng-295251.html

现在还很粗糙,功能还有很多需要完善的地方。大家有兴趣的话,就拿去使用吧。如果完善了进度条和文件大小的功能,记得也分享给我一份哦。

附上源码 http://www.jb51.net/codes/174384.html

http://www.bkjia.com/PHPjc/781038.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/781038.htmlTechArticle昨天花了点时间整合了一下头像插件 东拼西凑的成果 先来看下效果 1.先使用ajaxfileupload插件做异步上传。这个地方我本来想做个上传进度的...

转载地址:https://blog.csdn.net/weixin_32541663/article/details/115638051 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java script 与java,为什么JavaScript调用JavaScript,因为它与Java无关?
下一篇:java extends e,java泛型中的? extend E 和 ? super E

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月09日 12时53分12秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

开发一个APP,安卓与ios平台一共需要15万元,贵吗? 2021-07-01
计算机专业的,颜值很高是一种怎样的赶脚? 2021-07-01
为什么程序员不需要MATLAB技能? 2021-07-01
一套基于java的开源车牌识别算法 2021-07-01
想花钱速学互联网行业,大概花两三个月的时间,出来好找工作吗 2021-07-01
为何没有中文编程? 2021-07-01
招聘信息薪资范围是12-20K,能否要20K的薪资? 2021-07-01
软件外包商都是黑心的吗? 2021-07-01
Vue @import ‘~@/css/reset.css’;报错,解决方案 2021-07-01
Vue安装支持SCSS插件 2021-07-01
webstorm设置点击(单击)左侧项目资源管理器里面的文件,自动在右侧打开源代码文件 2021-07-01
360浏览器如何设置为像chrome谷歌浏览器那样输入网址回车在当前页面,而不是新建一个标签打开 2021-07-01
【记录】我在团队合作中遇到过的胎神(扑街仔)级别前端小伙伴 之 莫名其妙配置0.0.0.0这种IP访问 2021-07-01
【经典】全局公共scss文件的引入使用 2021-07-01
【抬杠】在某些时候不希望用户缩小浏览器的宽度,因为咳咳~会导致你的布局混乱,那么这个代码就是帮助你如何限制浏览器宽度的 2021-07-01
喂!讲真~我很讨厌chrome谷歌浏览器的默认填充输入框input样式咧,敲击讨厌滴啦,怎么去掉介个样式尼??? 2021-07-01
【原生基础版】js原生实现拖拽效果,注意不要忘了div的cursor用grab和grabbing(还是古法炮制、传统工艺的原生代码兼容性最好,推荐!!!) 2021-07-01
【加强版】js原生实现拖拽效果,这次没有用document的mousedown、mousemove、mouseup事件,我们来点干货! 2021-07-01
如何用bat文件快速计算项目代码行数 2021-07-01
《你的背包》歪唱 2021-07-01