分享一个think结合美图秀秀的上传头像裁切代码实例
程序员文章站
2024-04-06 11:11:13
...
半夜睡不着,浏览官网,看到有提到美图秀秀插件的,没有找到有写好的,就实现了一下分享给大家,破处之作,欢迎大大们提建议!
半路中遇到一个问题,提示上传成功,但是目录里没有图片,纠结烦恼了好久才发现已经是第二天了,过了凌晨又自动建下一个日期目录了......那叫相当一个蛋疼啊!
![分享一个think结合美图秀秀的上传头像裁切代码实例 分享一个think结合美图秀秀的上传头像裁切代码实例](/default/index/img?u=L1VwbG9hZHMvZWRpdG9yLzIwMTMtMDktMjEvNTIzYzdiZWMyNzY1OC5qcGc=)
首先把附件下载下来,然后把 crossdomain.xml 文件放到保存图片的服务器上根目录下,例如您的保存图片的服务器地址为: http://www.nianrenba.com,那么 crossdomain.xml 的路径为:http://www.nianrenba.com/crossdomain.xml 。
部署 crossdomain.xml 的目的是授权来自美图秀秀的flash向您的站点上传图片
视图代码(一定要放在之间):
账号自己注册个吧,实在太懒看下面:
ID:美图秀秀测试,PASSWORD:jtheihhie15764afhdh
说明:网站是用别的上传头像的方法,本人下面又加了一个链接可以链接到美图秀秀上传方法.
![分享一个think结合美图秀秀的上传头像裁切代码实例 分享一个think结合美图秀秀的上传头像裁切代码实例](/default/index/img?u=L1VwbG9hZHMvZWRpdG9yLzIwMTMtMDktMjEvNTIzYzdkM2UzYTM5Zi5qcGc=)
半路中遇到一个问题,提示上传成功,但是目录里没有图片,纠结烦恼了好久才发现已经是第二天了,过了凌晨又自动建下一个日期目录了......那叫相当一个蛋疼啊!
首先把附件下载下来,然后把 crossdomain.xml 文件放到保存图片的服务器上根目录下,例如您的保存图片的服务器地址为: http://www.nianrenba.com,那么 crossdomain.xml 的路径为:http://www.nianrenba.com/crossdomain.xml 。
部署 crossdomain.xml 的目的是授权来自美图秀秀的flash向您的站点上传图片
视图代码(一定要放在之间):
控制器代码: //上传头像美图秀秀
public function mei(){
$this->display();
}
//得到一个数据库中不存在的记录了
public function check($save_path){
$uniqid = uniqid();
//判断数据库中是否已经有此记录了
$mem = M('Member');
$filename = substr($save_path . '/' . $uniqid . '.jpg',25);
$n = $mem->where(array('avatar'=>$filename))->count();
if($n != false){
return $this->check($save_path);
}else{
return $filename;
}
}
//上传到空间
public function meichuan(){
$post_input = 'php://input';
$save_path = './Public/Uploads/avatars/'.date('Ymd',time()); //定义一个要上传头像的目录
is_dir($save_path) || mkdir($save_path); //如果没有这么目录,那么就创建这个目录
$postdata = file_get_contents( $post_input );
if ( isset( $postdata ) && strlen( $postdata ) > 0 ) {
$filename = $this->check($save_path);
$picname = substr($save_path,0,25).$filename;
$handle = fopen( $picname, 'w+' );
fwrite( $handle, $postdata );
fclose( $handle );
if ( is_file( $picname ) ) {
$mem = M('Member');
//删除原先的头像图片
$ava = $mem->where(array('uid'=>$_SESSION['uid']))->getField('avatar');
$oldavapath = substr($save_path,0,25).$ava;
if(($ava!=false)&&(is_file($oldavapath))) unlink($oldavapath);
$data['avatar'] = $filename;
$mem->where(array('uid'=>$_SESSION['uid']))->save($data);
echo '上传头像成功!';
exit ();
}else {
die ( '上传头像失败!' );
}
}else {
die ( '没有图片信息!' );
}
}
演示地址:http://www.nianrenba.com账号自己注册个吧,实在太懒看下面:
ID:美图秀秀测试,PASSWORD:jtheihhie15764afhdh
说明:网站是用别的上传头像的方法,本人下面又加了一个链接可以链接到美图秀秀上传方法.
crossdomain.zip
( 529 B 下载:513 次 )
AD:真正免费,域名+虚机+企业邮箱=0元
下一篇: 怎么通过xml文件,实现前台消息提示