首先要感谢fujun2013朋友,是fujun2013提供了帝国cms6.5 使用的会员头像上传裁剪的插件。再次表示感谢!!! 原贴 http://bbs.phome.net/ShowThread/?threadid=180766&forumid=13 ,因为6.5 的 在7.5下不能使用,所以我做了修改使得在7.5下能使用。
具体使用方法见压缩包中的说明。
其中压缩包中没有的部分使用说明如下:
1. 有移动端的请修改mypic.php文件中的第56行 $userpic="/d/file/p/userpic/".$myfname; 修改为: $userpic="http://www.*****.com/d/file/p/userpic/".$myfname; 即加上自己的域名,这样移动端也可以直接调用会员头像
2. 有想直接点击头像就调用上传头像插件的需要修改pic.php 文件 中的这个部分
<?php if(empty($addr[userpic])){ echo "<a href='javascript:;' onclick='artdialog()' style='padding-left:22px;margin-top:8px;'>上传头像</a>"; }else{ echo "<img src='".htmlspecialchars(stripSlashes($addr[userpic]))."' width='90' height='120' border=0> <a href='javascript:;' onclick='artdialog()' style='padding-left:22px;margin-top:8px;'>更改头像</a>"; } ?>
简单说一下方法:echo 括号的部分修改为你原来的显示头像的代码,具体做法你修改着调试着研究. 记得加上 onclick='artdialog()' ,否则无法调用上传组件。
3. 需要裁剪的头像是正方形的修改 (1)jquery.Jcrop.css 文件中的第六行 .crop_preview 的 height:120px; 为 height:90px; (2)mypic.php 文件中的第33行 $targ_h = 120; 为 $targ_h = 90; 第96 行 aspectRatio:3/4, 为 aspectRatio:4/4,
4. 变量过滤: mypic.php 文件中 if ($_POST['x']){ 前加以下代码
$_POST['x']=RepPIntvar($_POST['x']); $_POST['y']=RepPIntvar($_POST['y']); $_POST['w']=RepPIntvar($_POST['w']); $_POST['h']=RepPIntvar($_POST['h']); $_POST['destination']=RepPostVar3($_POST['destination']); $_POST['fname']=RepPostVar2($_POST['fname']); $_POST['filetype']=RepPostVar2($_POST['filetype']); 过滤是否正确完整,请大神指教。
5. 会员修改一次头像,就会上传一个头像文件到空间,造成空间的浪费。
完美的方法应该是上传一个头像,同时删除旧的头像。
解决方法: (1). mypic.php 文件中 $_POST['destination']=RepPostVar3($_POST['destination']); 这句前加 $addrr=$empire->fetch1("select userpic from {$dbtbpre}enewsmemberadd where userid='$user[userid]' limit 1");//查询头像 $txpic=$addrr[userpic]; //获取文件地址 $basename=basename($txpic); //获取文件名
(2). mypic.php 文件中 $sql=$empire->query("update {$dbtbpre}enewsmemberadd set userpic='$userpic' where userid='$user[userid]'"); 这句后加 unlink("../../../d/file/p/userpic/$basename");//删除原来的头像
不足之处,手机端无法使用,主要是裁剪框需要用鼠标确定,而手机端没有鼠标。哪位大神能修改一下,使得可以在移动端使用。
其他不足之处大家提出,一起共同解决。[b][/b]
|