分享一个think结合美图秀秀的上传头像裁切代码实例
半夜睡不着,浏览官网,看到有提到美图秀秀插件的,没有找到有写好的,就实现了一下分享给大家,破处之作,欢迎大大们提建议!
半路中遇到一个问题,提示上传成功,但是目录里没有图片,纠结烦恼了好久才发现已经是第二天了,过了凌晨又自动建下一个日期目录了......那叫相当一个蛋疼啊!
首先把附件下载下来,然后把 crossdomain.xml 文件放到保存图片的服务器上根目录下,例如您的保存图片的服务器地址为: http://www.nianrenba.com,那么 crossdomain.xml 的路径为:http://www.nianrenba.com/crossdomain.xml 。
部署 crossdomain.xml 的目的是授权来自美图秀秀的flash向您的站点上传图片
视图代码(一定要放在
<script></script><br>
<script><br />
window.onload=function(){<br />
xiuxiu.embedSWF("altContent",5,"630px","440px");<br />
/*第1个参数是加载编辑器div容器,第2个参数是编辑器类型,第3个参数是div容器宽,第4个参数是div容器高*/<br />
xiuxiu.setUploadURL("http://www.nianrenba.com/Member/meichuan");//修改为上传接收图片程序地址<br />
xiuxiu.onInit = function ()<br />
{<br />
xiuxiu.loadPhoto("http://www.nianrenba.com/Public/Uploads/avatars/meitu.jpg");//修改为要处理的图片url<br />
}<br />
xiuxiu.onUploadResponse = function (data)<br />
{<br />
if(data == "上传头像成功!"){<br />
window.location="<{:U('person/'.$_SESSION['uid'])}>";<br />
}else{<br />
alert(data);<br />
}<br />
}<br />
}<br />
</script><br>
控制器代码: //上传头像美图秀秀<br>
public function mei(){<br>
$this->display();<br>
}<br>
//得到一个数据库中不存在的记录了<br>
public function check($save_path){<br>
$uniqid = uniqid();<br>
//判断数据库中是否已经有此记录了<br>
$mem = M('Member');<br>
$filename = substr($save_path . '/' . $uniqid . '.jpg',25);<br>
$n = $mem->where(array('avatar'=>$filename))->count();<br>
if($n != false){<br>
return $this->check($save_path);<br>
}else{<br>
return $filename;<br>
}<br>
<br>
}<br>
//上传到空间<br>
public function meichuan(){<br>
$post_input = 'php://input';<br>
$save_path = './Public/Uploads/avatars/'.date('Ymd',time()); //定义一个要上传头像的目录<br>
is_dir($save_path) || mkdir($save_path); //如果没有这么目录,那么就创建这个目录<br>
$postdata = file_get_contents( $post_input );<br>
<br>
if ( isset( $postdata ) && strlen( $postdata ) > 0 ) {<br>
$filename = $this->check($save_path);<br>
$picname = substr($save_path,0,25).$filename;<br>
$handle = fopen( $picname, 'w+' );<br>
fwrite( $handle, $postdata );<br>
fclose( $handle );<br>
if ( is_file( $picname ) ) {<br>
$mem = M('Member');<br>
//删除原先的头像图片<br>
$ava = $mem->where(array('uid'=>$_SESSION['uid']))->getField('avatar');<br>
$oldavapath = substr($save_path,0,25).$ava;<br>
if(($ava!=false)&&(is_file($oldavapath))) unlink($oldavapath);<br>
$data['avatar'] = $filename;<br>
$mem->where(array('uid'=>$_SESSION['uid']))->save($data);<br>
echo '上传头像成功!';<br>
exit ();<br>
}else {<br>
die ( '上传头像失败!' );<br>
}<br>
}else {<br>
die ( '没有图片信息!' );<br>
}<br>
}
演示地址:http://www.nianrenba.com账号自己注册个吧,实在太懒看下面:
ID:美图秀秀测试,PASSWORD:jtheihhie15764afhdh
说明:网站是用别的上传头像的方法,本人下面又加了一个链接可以链接到美图秀秀上传方法.

crossdomain.zip
( 529 B 下载:513 次 )
AD:真正免费,域名+虚机+企业邮箱=0元

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

《Go语言编程实例:Web开发中的代码示例》随着互联网的快速发展,Web开发已经成为各行业中必不可少的一部分。作为一门功能强大且性能优越的编程语言,Go语言在Web开发中越来越受到开发者们的青睐。本文将通过具体的代码示例,介绍如何利用Go语言进行Web开发,让读者能够更好地理解和运用Go语言来构建自己的Web应用。1.简单的HTTP服务器首先,让我们从一个

了解Python编程的入门级代码示例Python是一种简单易学,功能强大的编程语言。对于初学者来说,了解Python编程的入门级代码示例是非常重要的。本文将为您提供一些具体的代码示例,帮助您快速入门。打印HelloWorldprint("HelloWorld")这是Python中最简单的代码示例。print()函数用于将指定的内容输出

Java冒泡排序最简单的代码示例冒泡排序是一种常见的排序算法,它的基本思想是通过相邻元素的比较和交换来将待排序序列逐步调整为有序序列。下面是一个简单的Java代码示例,演示了如何实现冒泡排序:publicclassBubbleSort{publicstaticvoidbubbleSort(int[]arr){int

PHP变量存储程序运行期间的值,对于构建动态且交互式的WEB应用程序至关重要。本文将深入探讨php变量,并通过10个真实的示例展示它们的实际应用。1.存储用户输入$username=$_POST["username"];$passWord=$_POST["password"];此示例从表单提交中提取用户名和密码,并将其存储在变量中以供进一步处理。2.设置配置值$database_host="localhost";$database_username="username";$database_pa

华为云边缘计算对接指南:Java代码示例快速实现接口随着物联网技术的快速发展和边缘计算的兴起,越来越多的企业开始关注边缘计算的应用。华为云提供了边缘计算服务,为企业提供了高可靠的计算资源和便捷的开发环境,使得边缘计算应用更加容易实现。本文将介绍如何通过Java代码快速实现华为云边缘计算的接口。首先,我们需要准备好开发环境。确保你已经安装了Java开发工具包(

如何使用PHP编写库存管理系统中的库存分仓管理功能代码库存管理是许多企业中不可或缺的一部分。对于拥有多个仓库的企业来说,库存分仓管理功能尤为重要。通过合理管理和跟踪库存,企业可以实现不同仓库之间的库存调拨,优化运营成本,改善协同效率。本文将介绍如何使用PHP编写库存分仓管理功能的代码,并为您提供相关的代码示例。一、建立数据库在开始编写库存分仓管理功能的代码之

标题:从入门到精通:Go语言中常用数据结构的代码实现数据结构在编程中起着至关重要的作用,它是程序设计的基础。在Go语言中,有许多常用的数据结构,掌握这些数据结构的实现方式对于成为一名优秀的程序员至关重要。本文将介绍Go语言中常用的数据结构,并给出相应的代码示例,帮助读者从入门到精通这些数据结构。1.数组(Array)数组是一种基本的数据结构,是一组相同类型

Java选择排序法代码编写指南及示例选择排序是一种简单直观的排序算法,其思想是每次从未排序的元素中选择最小(或最大)的元素进行交换,直到所有元素排序完成。本文将提供选择排序的代码编写指南,并附上具体的Java示例代码。算法原理选择排序的基本原理是将待排序数组分为已排序和未排序两部分,每次从未排序部分选择最小(或最大)的元素,将其放到已排序部分的末尾。重复上述
