资源简介
本文参考UCenter中上传头像功能的剥离php版本,陆续实现了java版本和.net版本的。
具体介绍如下(以php为例,其他版本见源码)
本文的内容仅供技术交流学习之用,相关的代码并未考虑实际应用系统中所必需的用户身份验证等功能,同时由于 UCenter 发行许可的限制,请勿将本文附带的代码直接用于实际的产品或项目中。
Discuz! 和 UCHome 中的头像上传功能很好用,大概有不少人和我一样想弄清楚它是怎么实现的,甚至希望移植到自己的应用系统中。
这个功能其实是在 UCenter 中实现的(这是 Discuz! 和 UCHome 等其它相关产品都依赖的公共模块),通过一个 Flash 文件(camera.swf),跟服务端的 PHP 程序配合完成的。
UCenter/UCHome 本身是开源的,但那个 camera.swf 并没有提供源代码。我们可以通过对 PHP 程序进行分析研究,进而基本摸清这个功能操作的细节,并最终将其剥离出来,独立于 UCenter 而独立运行。本文内容依据的是 UCenter1.5.0/UCHome2.0 。
首先我们来看一下 UCenter/UCHome 中这个功能是怎么工作的。
■ 基本步骤
0. 浏览器访问 UCHome 中的一个 web 页面,其中包含 camera.swf。为保证 camera.swf 能正常工作,在其相同的路径下需要有 locale.xml 文件。
装载 camera.swf 的 HTML 代码可以由下面的程序生成:
home\uc_client\client.php : uc_avatar()
生成的内容大致如下:
<embed src="http://localhost/center/images/camera.swf?inajax=1&appid=1&input=6b49vKhr%2FC4VpMIMCAt07Kr2eQk8jjY%2F6vtvDonod47dU7JK%2BxVFJPIVY%2FJGMQoSpzHylapBa8FbsEWFGorPwZDJRM10wGjxvbHKTVmVgrng%2BpoSTTsk%2BE3U&agent=a523e70c80e13e4eaee37c7f4bde4f2c&ucapi=http%3A%2F%2Flocalhost%2Fcenter&avatartype=virtual"
quality="high"
bgcolor="#ffffff"
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 156387 2010-10-06 15:32 三种版本的图片裁剪\Avatar_.net.rar
文件 3663 2011-03-28 13:22 三种版本的图片裁剪\ImgCropper_java\avatar.jsp
文件 78874 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\camera.swf
文件 5964 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\common.js
文件 25617 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\data\5.jpg
文件 5018 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\data\5_big.jpg
文件 3677 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\data\5_middle.jpg
文件 1429 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\data\5_small.jpg
文件 840835 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\data\6.jpg
文件 9250 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\locale.xml
文件 7176 2011-03-24 17:14 三种版本的图片裁剪\ImgCropper_php\avatar.php
文件 78874 2011-01-21 16:09 三种版本的图片裁剪\ImgCropper_php\camera.swf
文件 5964 2011-03-24 17:16 三种版本的图片裁剪\ImgCropper_php\common.js
文件 106544 2011-01-21 16:09 三种版本的图片裁剪\ImgCropper_php\common11.js
文件 25617 2011-03-24 17:14 三种版本的图片裁剪\ImgCropper_php\data\5.jpg
文件 5018 2011-03-24 11:48 三种版本的图片裁剪\ImgCropper_php\data\5_big.jpg
文件 3677 2011-03-24 11:48 三种版本的图片裁剪\ImgCropper_php\data\5_middle.jpg
文件 1429 2011-03-24 11:48 三种版本的图片裁剪\ImgCropper_php\data\5_small.jpg
..A.SH. 15360 2011-03-28 13:26 三种版本的图片裁剪\ImgCropper_php\data\Thumbs.db
文件 743 2011-03-24 11:19 三种版本的图片裁剪\ImgCropper_php\index.html
文件 9250 2011-01-21 16:09 三种版本的图片裁剪\ImgCropper_php\locale.xml
文件 7291 2011-03-28 13:26 三种版本的图片裁剪\readme.txt
目录 0 2011-03-28 13:25 三种版本的图片裁剪\ImgCropper_java\data
目录 0 2011-03-28 13:26 三种版本的图片裁剪\ImgCropper_php\data
目录 0 2011-03-28 13:25 三种版本的图片裁剪\ImgCropper_java
目录 0 2011-03-28 13:26 三种版本的图片裁剪\ImgCropper_php
目录 0 2011-03-28 13:26 三种版本的图片裁剪
----------- --------- ---------- ----- ----
1397657 27
............此处省略0个文件信息
----------- --------- ---------- ----- ----
文件 156387 2010-10-06 15:32 三种版本的图片裁剪\Avatar_.net.rar
文件 3663 2011-03-28 13:22 三种版本的图片裁剪\ImgCropper_java\avatar.jsp
文件 78874 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\camera.swf
文件 5964 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\common.js
文件 25617 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\data\5.jpg
文件 5018 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\data\5_big.jpg
文件 3677 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\data\5_middle.jpg
文件 1429 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\data\5_small.jpg
文件 840835 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\data\6.jpg
文件 9250 2011-03-28 10:39 三种版本的图片裁剪\ImgCropper_java\locale.xm
文件 7176 2011-03-24 17:14 三种版本的图片裁剪\ImgCropper_php\avatar.php
文件 78874 2011-01-21 16:09 三种版本的图片裁剪\ImgCropper_php\camera.swf
文件 5964 2011-03-24 17:16 三种版本的图片裁剪\ImgCropper_php\common.js
文件 106544 2011-01-21 16:09 三种版本的图片裁剪\ImgCropper_php\common11.js
文件 25617 2011-03-24 17:14 三种版本的图片裁剪\ImgCropper_php\data\5.jpg
文件 5018 2011-03-24 11:48 三种版本的图片裁剪\ImgCropper_php\data\5_big.jpg
文件 3677 2011-03-24 11:48 三种版本的图片裁剪\ImgCropper_php\data\5_middle.jpg
文件 1429 2011-03-24 11:48 三种版本的图片裁剪\ImgCropper_php\data\5_small.jpg
..A.SH. 15360 2011-03-28 13:26 三种版本的图片裁剪\ImgCropper_php\data\Thumbs.db
文件 743 2011-03-24 11:19 三种版本的图片裁剪\ImgCropper_php\index.html
文件 9250 2011-01-21 16:09 三种版本的图片裁剪\ImgCropper_php\locale.xm
文件 7291 2011-03-28 13:26 三种版本的图片裁剪\readme.txt
目录 0 2011-03-28 13:25 三种版本的图片裁剪\ImgCropper_java\data
目录 0 2011-03-28 13:26 三种版本的图片裁剪\ImgCropper_php\data
目录 0 2011-03-28 13:25 三种版本的图片裁剪\ImgCropper_java
目录 0 2011-03-28 13:26 三种版本的图片裁剪\ImgCropper_php
目录 0 2011-03-28 13:26 三种版本的图片裁剪
----------- --------- ---------- ----- ----
1397657 27
............此处省略0个文件信息
相关资源
- 数据结构与算法分析Java描述习题答案
- XFire返回自定义实体类
- 简单的网上书店管理系统(java)
- java实现网格法、KDTree空间检索
- java的ssh框架 mysql数据库 图书馆管理系
- jsp+Servlet+JavaBean 购物系统
- art of java web development
- java做的聊天室及安装脚本
- 基于javaweb人脸识别
- java ee课程设计
- 基于本体的初中数学知识点检索与展
- Clique聚类算法Java版
- 软件工程课程设计飞机订票系统Java数
- 网上书店-课程设计JSP+JavaBean+Servle
- Java用JSP和Servlet做的网上书店
- 测试JMF发送和接受RTP流,纯java编写
- 贝叶斯分类器实现的文本分类(Java实
- 基于JSP的停车场管理系统调试通过的
- java+Mysql 银行管理系统
- 数据结构与算法java中文版
- java和sql server制作的选课系统
- mysql数据库驱动:mysql-connector-java-6.
- Java实现人工智能代码
- java教材管理系统217577
- JAVA实现PDF阅读器
- JAVA微信支付退款接口demo
- Java连接MySQL驱动/mysql-connector-java-8.0
- 良葛格 Java 学习笔记-JavaGossip全v1+v2)
- Java版中国象棋人机对战源代码AI算法
- 超级玛丽java实现源码
评论
共有 条评论