首页 > 作文

PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁

更新时间:2023-04-06 22:34:15 阅读: 评论:0

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

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;

}el {

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

}

//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).tolowerca();

//console.log(ext);

if($.inarray(ext, allowimgagetype) != -1) {

ajaxfileupload();

}el {

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

}

}

el {

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

}

});

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

复制代码 代码如下:

function ajaxfileupload() {

$.ajaxfileupload({

url: ‘action.php’美术研究生;, //用于文件上传的服务器端请求地址

cureuri: fal, //一般设置为fal

fileelementid: ‘file1’, //文件上传空间的id属性 <input type=”file” id=”file” name=”file” />

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}],
//选择器默认大小
lector : {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_avata萨其马里的硼砂r’).show();
},
error: function (data, status, e)//服务器响应失败处理函数
{
alert(e);
}
})
retur自卑心理测试题n fal;
}

$(‘#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 fal;
});

4.html文件代码如下

复制代码 代码如下:

<body>

<p><input type=”file” id=”file1″ name=”file1″ /></p>

<input type=”button” value=”上传” id=”btnupload”/>

<div style=”display:none;overflow:hidden” id=”div_avatar”>

<div style=”width:500px;height:500px;overflow:hidden;float:left;” id=”picture_original”><img 我可爱的小狗alt=”” src=”” /></div>

<div id=”picture_200″ style=”float:left;margin-left:20px”></div>

<div id=”picture_50″ style=”float:left;margin-left:20px”></div>

<div id=”picture_30″ style=”float:left;margin-left:20px”></div>

<input type=”hidden” id=”x1″ name=”x1″ value=”0″ />

<input type=”hidden” id=”y1″ name=”y1″ value=”0″ />

<input type=”hidden” id=”cw” name=”cw” value=”0″ />

<input type=”hidden” id=”ch” name=”ch” value=”0″ />

<标准差公式是什么;input type=”hidden” id=”imgsrc” name=”imgsrc” />

<input type=”button” value=”裁剪上传” id=”btncrop”/>

</div>

</body>

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

附上源码

本文发布于:2023-04-06 22:34:13,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/cabbe5956c5a9cc5819ee712b270664d.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁.doc

本文 PDF 下载地址:PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁.pdf

标签:代码   上传   图片   文件大小
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图