头像直接从手机图库选择或者拍照上传


我刚好有这个需求,顺手解决了。跟大家分享下。


1、avatar.html  41行 改为

<input type="file"   accept="image/*" onChange="avatar_upload(this)" id="avatar_uploder"  name="file"/>

加了个accept属性,方便启用相机或者接受手机相册图片。


2、avatar.html  100行前 插入

c&#091;"pw"&#093;=$("#J_pic").width();
c&#091;"ph"&#093;=$("#J_pic").height();

主要是用来存储图片的当前大小。因为在手机中,图片可能被缩小了,而jcrop截图所得的数据则是根据你看到的来计算。最终会导致实际裁出的图片只有一小块。


3、ProfileAction.class.php  144行 插入

$pw=I("post.pw");
$ph=I("post.ph");
if($pw!=$imginfo&#091;0&#093; &#124;&#124; $ph!=$imginfo&#091;1&#093;){
	$targ_w=round($imginfo&#091;0&#093;/$pw*$targ_w,0);
	$targ_h=round($imginfo&#091;1&#093;/$ph*$targ_h,0);
	$_POST&#091;'x'&#093;=round($imginfo&#091;0&#093;/$pw*$_POST&#091;'x'&#093;,0);
	$_POST&#091;'y'&#093;=round($imginfo&#091;1&#093;/$ph*$_POST&#091;'y'&#093;,0);
}


这样就可以了。


补充两点:

1、其实只要用js在前台算好图片缩放比例,然后重新计算w,h,x,y的值传回后台就可以了,php文件根本不用改变。但我稍微查了下,要用js查看图片原始宽高好像挺复杂的,所以就用这个笨办法了。

2、上述用了一大堆post值,只是为了配合原来代码中的应用,理论上这些post都应先通过I取出来再计算。懂的自己改吧。

打赏

评论

暂时关闭,稍后恢复~
文档请看10遍以上!有问题可加QQ群!
发表话题

源素材推荐

提问必知

0.话题发布后没及时显示,请联系官方QQ群管理;
1.话题支持代码,qq截屏直接粘贴,和QQ群一样;
2.问题描述清,比如服务器版本,程序版本;
3.能上代码,就不用文字;
4.把问题发到话题后再发QQ群;
5.如果感觉回复者解答的不错,可以发红包!
6.多帮助别人也是对自己的锻炼!
7.付费讨论中只有提问者和付费用户才可以查看回复

积分规则

1.评论积分+1;每天最多10次奖励
2.发布话题积分+1;每天最多5次奖励
3.垃圾评论积分-500;
4.黄色,暴力,违反我国法律评论直接封号


ThinkCMF 8.0.1发布啦!节日快乐! 立即体验!