自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(170)
  • 资源 (22)
  • 收藏
  • 关注

转载 MySQL存储过程的创建及调用

阅读目录:MySQL存储过程_创建-调用-参数存储过程:SQL中的“脚本”1111    1.创建存储过程    2.调用存储过程    3.存储过程体    4.语句块标签存储过程的参数    1.in:向过程里传参    2.out:过程向外传参值    3.inout:in and out#SQL语句:先编译后执行存储过程(Stored Proce...

2018-08-01 17:02:52 507

转载 Git常用命令

把文件存入本地暂存区: 把新建文件、修改过的文件存入本地暂存区:git add . 把修改过的文件、删除的文件存入本地暂存区:git add -u 把新建文件、修改过的文件、删除的文件存入本地暂存区: git add -A,相当于上两条之和 将本地暂存区的文件推送到本地库:git commit -m '修改提示' 查看当前 git 状态:git status 从 gith...

2018-07-31 14:38:13 226

转载 idea 之git使用详细教程

安装选择VersionControl下的Git,依据下图进行git配置 使用荡项目从VCS菜单选择checkout from version control-->git 更新项目如果本地有分支,一般是从本地,没有的话则是从远程 Ctrl+k后 面板说明Alt+9跳转到versionControl面板Local Chang...

2018-07-31 14:20:56 1426

转载 git-从零开始实现本地仓库与远程顺畅推拉

  git是一个分布式版本控制系统,本地git仓库和远程仓库之间的传输支持ssh、https等协议。使用https协议缺点:速度慢,每次推送都必须输入⼝令。若使用 ssh 协议,需要在你的github账户添加你的本机上的ssh公钥,之后才可以通过本机推送内容到你的github。从零开始实现本地仓库与远程顺畅推拉的步骤:安装git,不同系统安装方法不同。详见https://git-scm.c...

2018-07-31 14:03:12 482

转载 高性能JSON框架之FastJson的简单使用

1.前言1.1.FastJson的介绍:JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址: FastJson1.2.FastJson的特点:1.FastJson数度快,无论序列化和反序列化,都是当之无愧的fast 2.功能强大(支持普通JDK类...

2018-07-31 13:59:18 388

转载 MySQL5.7 group by新特性,报错1055

项目中本来使用的是mysql5.6进行开发,切换到5.7之后,突然发现原来的一些sql运行都报错,错误编码1055,错误信息和sql_mode中的“only_full_group_by“有关,到网上看了原因,说是mysql5.7中only_full_group_by这个模式是默认开启的 解决办法大致有两种: 一:在sql查询语句中不需要group by的字段上使用any_value()函数 当然,...

2018-07-14 17:25:27 288

转载 Java8中Map的遍历方式总结

public class LambdaMap {    private Map<String, Object> map = new HashMap<>();    @Before    public void initData() {        map.put("key1", "value1");        map.put("key2", "value2");   

2018-07-14 10:12:17 3856

原创 dubbo与springboot的集成和使用dubbo-spring-boot-starter

dubbo最近更新了dubbo-spring-boot-starter的jar包,废话不多少,看看如何使用。首先我们可以通过github编译打包最新的starter,Git地址为:https://github.com/alibaba/dubbo-spring-boot-starter.git在springboot项目的pom.xml中新增,添加maven的依赖。 <!--dubbo-spr...

2018-07-12 16:03:17 4210

转载 如何在Intellij IDEA中拉(创建)svn分支?

如何在Intellij IDEA中拉(创建)svn分支?本节要点使用svn在Intellij IDEA中创建分支1先说下流程: 在IDEA里面对trunk代码拉分支熟悉了,其实很容易,(1)你trunk目录下的得有个你的releases项目(2)在idea的工作空间下,按如下截图显示(3)填一些拷贝的一些的信息:(4)在3的基础上,选则在svn上的分支路径时,需要注意如下: (这个BaseUrl其...

2018-07-12 10:30:05 921

转载 CentOS/Linux下设置IP地址

CentOS/Linux下设置IP地址1、临时修改1.1 修改IP地址# ifconfig eth0 192.168.100.1001.2 修改网关地址# route add default gw 192.168.100.1 dev eth01.3 修改DNS# echo “nameserver 8.8.8.8” >> /etc/resolv.conf这个时候就可以上网了,上网的...

2018-06-26 11:06:18 214

转载 使用nginx后如何在web应用中获取用户ip及原理解释

问题背景在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.getRemoteAddr()就可以获取到客户端ip,但是当我们使用了nginx作为反向代理后,使用request.getRemoteAddr()获取到的就一直是nginx服务器的ip的地址,那这时应该怎么办?part1:解决方案我在查阅资料时,有一本名叫《实战ng...

2018-06-26 11:05:14 241

转载 Nginx状态统计模块

前面简单介绍了Nginx的手动编译安装过程,详细过程请参见Nginx服务搭建;而Nginx内置了状态统计模块,用来反馈当前的web访问情况,那么该如何开启Nginx内置状态统计模块呢?且我们该如何通过客户端进入状态统计页面?编译安装Nginxcd /opt/nginx-1.6.0/ //这里我将Nginx源码包解压在/opt目录下 ./configure \--prefix=/u...

2018-06-26 10:58:45 1736

转载 CentOS 7.x安装搭建Zabbix3.0环境

1、安装数据库mariadb[root@node1 ~]# yum install -y mariadb mariadb-server[root@node1 ~]# systemctl start mariadb[root@node1 ~]# systemctl enable mariadb[root@node1 ~]# vi /etc/my.cnf[root@node1 ~]# cat ...

2018-06-26 10:18:00 235

转载 linux下nginx不支持中文URL路径的解决方案

1、确定你的系统是UTF编码[root@localhost ~]# echo $LAGNen_US.UTF-82、nginx配置文件里默认编码设置为utf-8server{listen 80;server_name .inginx.com ;index index.html index.htm index.php;root /usr/local/nginx/html/inginx.c...

2018-06-26 10:02:29 11375

转载 CentOS 6.9/7通过yum安装指定版本的Nginx

说明:通过yum好处其实很多,环境变量不用配置,配置文件放在大家都熟悉的地方,通过rpm -ql nginx可以知道全部文件的地方等等。Nginx(1.12.2)一、安装和配置1、安装# rpm -ivh http://nginx.org/packages/centos/6/x86_64/RPMS/nginx-1.12.2-1.el6.ngx.x86_64.rpm备注:其实根据上面这个网址(ht...

2018-06-26 09:59:15 1518

转载 Nginx与Apache环境防盗链设置方法

说明:很多人的VPS流量是有限的,而一般情况下我们放在网站上的媒体文件都是可以被别人引用的,我们的文件也就成了别人的免费外链,可想而知流量会消耗的有多快,这时候设置一下防盗链还是很有必要的。根据我们搭建的系统环境不同,我们在Nginx和Apache中设置防盗链的方法也是不同的。Nginx防盗链方法location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|mp3|wav|zi...

2018-06-26 09:58:01 273

转载 爬虫突破封禁的6种常见方法

在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器人(bots)。最常用的方法是写一个自动化程序向网络服务器请求数据(通常是用 HTML 表单或其他网页文件),然后对数据进行解析,提取需要的信息。 本文假定读者已经了解如何用代码来抓取一个远程的 URL,并具备表单如何提交及 JavaScript 在浏...

2018-06-26 09:55:59 4720

转载 Nginx支持HTTPS并且支持反爬虫

自己写了若干爬虫, 但是自己的网站也有人爬, 呵呵, 这里介绍一种Nginx反爬.我在阿里云只开放80端口, 所有一般端口都通过Nginx进行反向代理. 通过Nginx, 我们还可以拦截大部分爬虫.然后我们再给自己的网站加上HTTPS支持.Nginx安装我的系统如下:jinhan@jinhan-chen-110:~/book/Obiwan/bin$ lsb_release -aNo LSB mo...

2018-06-26 09:51:36 1285

转载 JAVA8之lambda表达式详解,及stream中的lambda使用

前言: 本人也是学习lambda不久,可能有些地方描述有误,还请大家谅解及指正!lambda表达式详解一.问题1.什么是lambda表达式? 2.lambda表达式用来干什么的? 3.lambda表达式的优缺点? 4.lambda表达式的使用场景? 5.lambda只是一个语法糖吗?二.概念lambda表达式是JAVA8中提供的一种新的特性,它支持JAVA也能进行简单的“函数式编程”。 它是一个匿...

2018-05-30 11:42:18 339

转载 如何使用RedisTemplate访问Redis数据结构

Redis 数据结构简介Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。下面来对这5种数据结构类型作简单的介绍:结构类型结构存储的值结构的读写能力String可以是字符串、整数或者浮点数对整个字符串或者字符串的其中一部分执行操作;对象和浮点数执行自增(incremen...

2018-05-30 11:38:41 218

转载 Netty的特性

作者:郭无心链接:https://www.zhihu.com/question/24322387/answer/78947405来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Netty的特性1)设计统一的API,适用于不同的协议(阻塞和非阻塞)基于灵活、可扩展的事件驱动模型高度可定制的线程模型可靠的无连接数据Socket支持(UDP)2)性能更好的吞吐量,低延迟更省...

2018-03-27 11:33:43 859

转载 svn merge和branch

使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响,最主要的原因是,自己对分支的目的和合并的方法不甚了解,这才是硬伤。 最近由于适配机型的需要(本人从事手机客户端的开发),需要经常接触分支和合并两项工作,突然发现这玩意整不明白很难开展工作,遂这两天着重研究了一下,有点收获,怕以后忘了,故趁...

2018-03-05 13:16:46 223

转载 Zkui安装

是一个允许在zookeeper上进行增删查改操作的图形管理工具,与zkdash类似。1、拉取代码#git clone https://github.com/DeemOpen/zkui.git2、构建并安装程序#cd zkui/#yum install -y maven#mvn clean install3、修改配置文件#cp config.cfg target/#cd

2017-12-29 19:40:27 2073

原创 CentOS 7 开放端口

CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,google之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口:开启端口firewall-cmd --zone=public --add-port=80/tcp --permanent命令含义:--zone #作

2017-12-29 19:02:24 183

转载 Dubbo入门---搭建一个最简单的Demo框架

目录(?)[-]Dubbo背景和简介Dubbo是什么Dubbo架构Dubbo注册中心Dubbo优缺点Dubbo入门DemoZookeeper介绍与安装创建MAVEN项目Dubbo管理控制台介绍Dubbo背景和简介Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。单一应用框架(ORM) 当网站流量很小时,只需一个应用,

2017-11-30 13:18:12 476

转载 Nginx配置文件详细说明

Nginx配置文件详细说明在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络.#运行用户user www-data;    #启动进程,通常设置成和cpu的数量相等worker_processes  1;#全局错误日志及PID文件error_log  /var/log/nginx/error.log;pid        /v

2017-11-09 22:40:23 283

转载 常用JDBC驱动与连接字符串整理

常用JDBC驱动与连接字符串MySQLdriver:com.mysql.jdbc.Driverurl:jdbc:mysql://localhost:3306/mydbMySQL url格式:jdbc:mysql://[host:port]/[database][?参数名1][=参数值1][&参数名2][=参数值2]…参数名称参数说明

2017-10-20 20:11:12 765

转载 Mysql进行复杂查询

Mysql进行复杂查询 1.查询“生物”课程比“物理”课程成绩高的所有学生的学号; 思路: (1)获取所有选了 生物 课程的学生的成绩(学号,成绩) --临时表      (2)获取所有选了 物理 课程的学生的成绩(学号,成绩) --临时表   (3)根据学号连接两张临时表(学号,生物成绩,物理成绩),加条件进行查询SELECT A.stud

2017-10-19 17:05:31 8973 1

转载 gitbash命令的简单使用--Git Bash简单使用

现简述一下git的安装和使用。安装:有关git于svn区别及其优势不再赘述,现简介其使用方法,因为我的电脑是win7系统,所以需要到官网(https://git-for-windows.github.io/)下载msysgit。(图形界面的话还需安装TortoiseGit)下载完成,双击安装,一路选择默认设置即可。Bash简单使用" title="gitbash命令的简单使用-

2017-10-17 17:34:01 10328 1

转载 Git bash常用命令

GIT使用的客户端有Git Bash:http://code.google.com/p/msysgit/还有乌龟TortoiseGit:http://code.google.com/p/tortoisegit/ git status查看本地修改与服务器的差异。git add .将这些差异文件添加,这样就可以提交了。git commit –m “这里是注释”提

2017-10-17 17:20:18 299

转载 Gson使用中遇到的Date格式问题

在Java中处理JSON格式的数据时,Google Gson是个不错的选择,用起来挺方便的,也有一定灵活性。我现在工作中在参与的两个项目里都有用它。不过它在处理Date格式时有个小陷阱,在不同环境中部署时可能会遇到问题。 Gson默认处理Date对象的序列化/反序列化是通过一个SimpleDateFormat对象来实现的,通过下面的代码去获取实例: Java代码  

2017-08-19 10:19:45 670

转载 Hibernate的HQL,QBC 查询语言(包括多表联合查询join)

引用链接:http://takeme.iteye.com/blog/1722522  参考链接:in和not in用法:http://blog.csdn.NET/shiqidide/article/details/7327460   或   http://blog.csdn.net/shiqidide/article/details/7327460Enum映射策略:ht

2017-08-05 21:15:39 658

转载 Oracle存储过程基本语法介绍

Oracle存储过程基本语法 存储过程   1 CREATE OR REPLACE PROCEDURE 存储过程名   2 IS   3 BEGIN   4 NULL;   5 END; 行1:   CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: 

2017-08-03 01:23:49 455

转载 Redis Cluster 3.0搭建与使用

Redis Cluster终于出了Stable,这让人很是激动,等Stable很久了,所以还是先玩玩。一. 集群简单概念。Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation)。Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行这些命令需要在多个 Redis 节点之间移动数据, 并且在高负载的情况下,

2017-08-01 21:45:36 492

转载 Linux 下hosts文件详解

1、主机名:无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。公网:IP地址不方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在,每个域名都对应一个IP地址,但一个IP地址可有对应多个域名。局域网:每台机器都有一个主机名,用于主机与主机之间的便于区分,就可以为每台机器设置主机名,以便

2017-08-01 16:46:45 2247

转载 Redis配置文件详解

# Redis 配置文件# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes#

2017-07-31 22:52:10 338

转载 yum安装gcc和gcc-c++

今天安装gcc-c++时出现 yum.cli:Config Error。安装前提:首先安装完成yum当安装yum -y install gcc时安装很顺利,可是安装-c++是却安装不成功上网查询之后发现原来-c++的原包名是gcc-c++安装命令:yum -y install gcc gcc-c++安装成功会提示Complete!

2017-07-31 22:28:51 12517

转载 linux服务器上配置tomcat以service方式启动

1. 在/etc/init.d目录下新建文件,命名为tomcat2. 对tomcat文件进行编辑,执行 # cd /etc/init.d/ # vi tomcat将下面代码粘上去注意:下面代码java_home和catalina_home是指jdk和tomcat安装的根路径#!/bin/bash  # description: Tomcat7 Start Stop Re

2017-07-30 19:46:00 692

转载 linux下mysql的root密码忘记解决方法

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对 外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全 状态。最安全的状态是到服务器的Console上面操作,并且

2017-07-30 19:30:54 300

原创 解决xftp远程连接后出现中文乱码

1、在xbrowser 5界面下,右击xftp,选择属性2、切换到选项

2017-07-30 15:41:57 897

去除BOM文件头工具

去除BOM头小工具-批量转换utf-8;eclipse项目导入到idea时,可以批量去除bom

2017-12-25

China省市.xml

省市二级联动,用于xml获取、解析,很好用的例子!!!

2017-11-03

MySQL练习数据库

MySQL 官方练习用数据库- employees。还不错!方便初学者练习查询语句

2017-10-18

Hplus官方完整版带文档 v.4.1.0.zip

Hplus官方完整版带文档 v.4.1.0

2017-08-09

使用jar使用验证码功能(ValidateCode.jar )

使用请看http://blog.csdn.net/CSDN_LQR/article/details/52821701

2017-08-09

activiti 中文用户手册

Activiti中文用户手册 文档,学习Activiti入门上手做项目这个文档够用了。

2017-07-26

bootstrap做登录注册页面带验证

用bootstrap做的登录,注册页面,使用validate进行表单验证

2017-07-05

疯狂Java讲义精粹

gobang: 第1章 控制台五子棋 cal: 第2章 仿Windows计算器 viewer: 第3章 图片浏览器 ball: 第4章 桌面弹球 tetris: 第5章 俄罗斯方块 image: 第6章 仿Windows画图 linkgame: 第7章 单机连连看 editor: 第8章 简单Java IDE工具 book: 第9章 图书进存销系统 transaction: 第10章 事务跟踪系统 flashget: 第11章 多线程下载工具 foxmail: 第12章 邮件客户端 mysql-manager: 第13章 MySQL管理器 IoC: 第14章 自己开发IoC容器(容器源代码) book(IoC): 第14章 自己开发IoC容器(整合图书进存销系统) GameHall-Client: 第15章 游戏大厅客户端框架 GameHall-Commons: 第15章 游戏大厅公用模块 GameHall-Server: 第15章 游戏大厅服务器端框架 chat-room-server: 第15章 聊天室服务器端模块 chat-room-client: 第15章 聊天室客户端模块 fivechess-server: 第15章 五子棋游戏大厅服务器端模块 fivechess-client: 第15章 五子棋游戏大厅客户端模块 fivechess-commons: 第15章 五子棋游戏大厅公用模块

2017-06-21

FreeMarker编程指南

FreeMarker编程指南 中文

2016-04-29

INSPINIA后台框架中文版 H+后台框架3.2最新版

demo:http://www.zi-han.net/theme/hplus/index.html H+后台框架最新版V3.2 去版权 内容补充整理。

2016-04-20

三种版本的在线图片裁剪基于UCenter camera.swf

本文参考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() 生成的内容大致如下: <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="447" height="477" id="mycamera" align="middle"> <param name="allowScriptAccess" value="always" /> <param name="scale" value="exactfit" /> <param name="wmode" value="transparent" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="movie" value="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" /> <param name="menu" value="false" /> <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" width="447" height="477" name="mycamera" align="middle" allowScriptAccess="always" allowFullScreen="false" scale="exactfit" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> 参数分解如下: inajax 1 appid 1 input 6b49vKhr%2FC4VpMIMCAt07Kr2eQk8jjY%2F6vtvDonod47dU7JK%2BxVFJPIVY%2FJGMQoSpzHylapBa8FbsEWFGorPwZDJRM10wGjxvbHKTVmVgrng%2BpoSTTsk%2BE3U agent a523e70c80e13e4eaee37c7f4bde4f2c ucapi http://localhost/center avatartype virtual 其中的关键参数为 ucapi,后面两步 POST 的 URL 为 <ucapi>/index.php 这里的 "/index.php" 似乎是 hardcode 在 camera.swf 里的,不过在最后的程序代码中会看到,如果我们指定的 ucapi 明确给定了一个 php 文件的话,可以绕开 index.php 这个文件名。换句话说,如果服务端不是采用 PHP,而是另外一种编程语言的话(比如 Java/.NET 等),也是可以实现的。 1. 用户在 camera.swf 中“选择图片”后,camera.swf 会立刻把选中的图片上传到服务器。 $_SERVER REQUEST_URI /center/index.php?m=user&inajax=1&a=uploadavatar&appid=1&input=ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w%2BwM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f&agent=a523e70c80e13e4eaee37c7f4bde4f2c&avatartype=virtual METHOD POST $_GET m user inajax 1 a uploadavatar appid 1 input ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w+wM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f agent a523e70c80e13e4eaee37c7f4bde4f2c avatartype virtual $_POST Filename something.jpg Upload Submit Query $_FILES 图片文件内容 处理程序为: center\control\user.php : onuploadavatar() 程序返回的内容为保存该文件的临时位置,比如: http://localhost/center/data/tmp/upload5.jpg camera.swf 会通过上面这个网址来读取图片,显示供操作。还可以有以下返回值作为错误代码: -1 : Invalid identity! -2 : Invalid photograph! -3 : No photograph be upload! -4 : Can not write to the data/tmp folder! -5 : Server can not upload! 2. 用户在 camera.swf 中“确定”后,camera.swf 会向服务器上传 3 个图片数据,作为大、中、小尺寸的头像图片。 $_SERVER REQUEST_URI /center/index.php?m=user&inajax=1&a=rectavatar&appid=1&input=ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w%2BwM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f&agent=a523e70c80e13e4eaee37c7f4bde4f2c&avatartype=virtual&randomnumber=5478 METHOD POST $_GET m user inajax 1 a rectavatar appid 1 input ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w+wM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f agent a523e70c80e13e4eaee37c7f4bde4f2c avatartype virtual randomnumber 5478 $_POST avatar1 ...<big> avatar3 ...<middle> avatar2 ...<small> 处理程序为: center\control\user.php : onrectavatar() 程序的返回内容为: 成功时: <?xml version="1.0" ?><root><face success="1"/></root> 失败时: <root><message type="error" value="-1" /></root> 3. 上传完成后,如果 camera.swf 能找到名为 updateavatar() 的 Javascript function,就会调用它。 ■ 参数分析 在上面第 0 步生成的 HTML 中,指向 camera.swf 的 URL 携带了一些参数,其中最关键的是 ucapi,它决定了第 1 步和第 2 步的 HTTP Request 发往哪里。 其它几个都是 UCenter 应用系统所需要的参数。camera.swf 是专为 UCenter 设计的,所以它特别支持这几个参数值,也就是说,在访问 camera.swf 的 URL 里包含了什么值,在后续访问 ucapi 的时候就会原样传回来。 camera.swf 没有提供源代码,没办法改造,但并不妨碍我们使用它。比如,我们可以借用 input 这个参数,把自己应用程序所需要的自定义参数(比如 user id)统一编码装在这个值里。 ■ 剥离实现 搞清楚了功能操作的细节和参数含义,重新实现这个功能就很容易了。 所谓重新剥离实现,就是在直接借用 camera.swf/locale.xml 这两个文件的前提下,重新编写服务器端的处理程序,实现头像上传功能,脱离 UCenter 独立运行。 理论上任何服务端编程语言都可以,我这里只给出 PHP 的代码。 包含了三个程序文件: avatar.php -- 实现了上面“基本步骤”中提到的全部功能 camera.swf -- 提取自 UCenter locale.xml -- 提取自 UCenter 将这三个文件部署到 web server 上,然后访问 http://localhost/avatar.php 即可。还可以在 URL 上指定一个 uid 作为“用户标识”,比如 http://localhost/avatar.php?uid=5

2016-01-04

camera.swf java版本的图片操作

camera.swf java版本的图片等比缩小和截取.同时生成大、中、小等三张图片。 完美运行。

2016-01-04

swfUpload上传图片即时预览效果Java版(源代码+帮助文档)

异步上传,上传时以百分比显示上传进度,能即时预览效果,里边有源代码和帮助文档,有注释,非常易学

2016-01-04

java实现截图功能

java实现截图功能,类似qq的截图功能,欢迎下载

2016-01-04

jquery.mobile-1.4.5

jqery mobile 的demo,顶部底部导航栏,文章样式,字体,进度条,js的代码等

2015-08-24

spring3.1 官方全部jar包

spring3.1官方所有的jar包 org.springframework.aop-3.1.RELEASE.jar org.springframework.asm-3.1.RELEASE.jar org.springframework.aspects-3.1.RELEASE.jar org.springframework.beans-3.1.RELEASE.jar org.springframework.context.support-3.1.RELEASE.jar org.springframework.context-3.1.RELEASE.jar org.springframework.core-3.1.RELEASE.jar org.springframework.expression-3.1.RELEASE.jar org.springframework.instrument.tomcat-3.1.RELEASE.jar org.springframework.instrument-3.1.RELEASE.jar org.springframework.jdbc-3.1.RELEASE.jar org.springframework.jms-3.1.RELEASE.jar org.springframework.orm-3.1.RELEASE.jar org.springframework.oxm-3.1.RELEASE.jar org.springframework.spring-library-3.1.RELEASE.libd org.springframework.test-3.1.RELEASE.jar org.springframework.transaction-3.1.RELEASE.jar org.springframework.web.portlet-3.1.RELEASE.jar org.springframework.web.servlet-3.1.RELEASE.jar org.springframework.web.struts-3.1.RELEASE.jar org.springframework.web-3.1.RELEASE.jar

2015-06-17

jai_core.jar文件

关于JAI的两个JAR文件中jai_core.jar文件

2015-06-10

jai_codec.jar

关于JAI的两个JAR文件jai_codec.jar和jai_core.jar的最新版本

2015-06-10

jai_core.jar

关于JAI的两个JAR文件jai_codec.jar和jai_core.jar的最新版本

2015-06-10

apache-tomcat-8.0.21 32/64安装版

apache-tomcat-8.0.21 32/64安装版

2015-04-30

eclipse 3.5 官方简体中文包

Eclipse 3.5.0 官方简体中文包使用方法: 下载 Eclipse 3.5.0 官方简体中文包 ,解压语言包至Eclipse文件夹的dropins文件夹,然后使用命令行加参数启动Eclipse。 Eclipse.exe -nl zh 你可以创建一个快捷方式,然后右键属性附加以上参数(-nl zh),这样双击即可启动Eclipse简体中文版。 又或者,打开Eclipse.ini,在最后面一行加上-nl zh

2015-04-30

VMware vSphere Client使用文档

VMware vSphere Client应用文档

2015-04-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除