强大的flash头像上传插件(支持旋转、拖拽、剪裁、生成缩略图等)
今天介绍的这款flash上传头像功能非常强大,支持php,asp,jsp,asp.net 调用 头像剪裁,预览组件插件。 本组件需要安装Flash Player后才可使用,请从http://dl.pconline.com.cn/html_2/1/114/id=8122&pn=0.html" target='_blank'>这里下载安装。
程序员,你不是一个人;网站开发QQ群:35291327 在线充值,或联系QQ416148489直接充值

该flash头像上传插件受众多开发人员好评的优秀,具有以下优势:
<ul class="ul_demo"> <li>上传并预览,用户可以任意选择区域,支持头像旋转</li> <li>支持上传成功,js 回调函数</li> <li>无论图片过大还是过小,都可以按照固定大小显示</li> <li>支持亮度,对比度,饱和度修饰</li> <li>支持头像拍照保存</li> <li>支持php,asp,jsp,asp.net 调用</li> <li>兼容性好,任何浏览器 IE10, IE9, IE8, IE7 IE 6 ,firefox, chrome 都正常使用 </li>
HTML
首先我们在页面上定义了一个隐藏的上传按钮。为什么要隐藏呢?这是为了保证图片成功加载到编辑面板。
<button type="button" id="upload" style="display:none;margin-top:8px;">
swf外定义的上传按钮,点击可执行上传保存操作
</button>
接着我们要载入jQuery库和flash需要的组件。
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="scripts/swfobject.js"></script>
<script type="text/javascript" src="scripts/fullAvatarEditor.js"></script>
最后我们看下头像上传的调用方法,说明都已经写在以下代码里。
swfobject.addDomLoadEvent(function() {
//以下两行代码正式环境下请删除
if (location.href.indexOf('http://') == -1) alert('请于WEB服务器环境中查看、测试!\n\n既 http://*/simpleDemo.html\n\n而不是本地路径 file:///*/simpleDemo.html的方式');
var swf = new fullAvatarEditor("fullAvatarEditor.swf", "expressInstall.swf", "swfContainer", {
id: 'swf',
upload_url: 'upload.php?userid=999&username=looselive',//上传头像地址和参数
method: 'post',//传递到上传接口中的查询参数的提交方式。更改该值时,请注意更改上传接口中的查询参数的接收方式
src_upload: 2,//是否上传原图片的选项,有以下值:0-不上传;1-上传;2-显示复选框由用户选择
avatar_box_border_width: 0,
avatar_sizes: '100*100|50*50|32*32',
avatar_sizes_desc: '100*100像素|50*50像素|32*32像素'
},
function(msg) {
switch (msg.code) {
case 1:
//alert("页面成功加载了组件!");
break;
case 2:
//alert("已成功加载图片到编辑面板。");
document.getElementById("upload").style.display = "inline";
break;
case 3:
if (msg.type == 0) {
alert("摄像头已准备就绪且用户已允许使用。");
} else if (msg.type == 1) {
alert("摄像头已准备就绪但用户未允许使用!");
} else {
alert("摄像头被占用!");
}
break;
case 5:
if (msg.type == 0) {
if (msg.content.sourceUrl) {
alert("原图已成功保存至服务器,url为:\n" + msg.content.sourceUrl + "\n\n" + "头像已成功保存至服务器,url为:\n" + msg.content.avatarUrls.join("\n\n") + "\n\n传递的userid=" + msg.content.userid + "&username=" + msg.content.username);
} else {
alert("头像已成功保存至服务器,url为:\n" + msg.content.avatarUrls.join("\n\n") + "\n\n传递的userid=" + msg.content.userid + "&username=" + msg.content.username);
}
}
break;
}
});
document.getElementById("upload").onclick = function() {
swf.call("upload");
};
});
PHP
本文以PHP上传为例,我们把头像上传到upload文件夹,并且上传后生成了三张头像缩略图。
$dir = "upload";
// 取服务器时间+8位随机码作为部分文件名,确保文件名无重复。
$filename = date("YmdHis") . '_' . floor(microtime() * 1000) . '_' . createRandomCode(8);
// 处理原始图片开始------------------------------------------------------------------------>
//默认的 file 域名称是__source,可在插件配置参数中自定义。参数名:src_field_name
$source_pic = $_FILES["__source"];
//如果在插件中定义可以上传原始图片的话,可在此处理,否则可以忽略。
if ($source_pic) {
if ($source_pic['error'] > 0) {
$msg .= $source_pic['error'];
} else {
//原始图片的文件名,如果是本地或网络图片为原始文件名、如果是摄像头拍照则为 *FromWebcam.jpg
$sourceFileName = $source_pic["name"];
//原始文件的扩展名(不包含“.”)
$sourceExtendName = substr($sourceFileName, strripos($sourceFileName, "."));
//保存路径
$savePath = "$dir\php_source_$filename." . $sourceExtendName;
//当前头像基于原图的初始化参数(只有上传原图时才会发送该数据,且发送的方式为POST),用于修改头像时保证界面的视图跟保存头像时一致,提升用户体验度。
//修改头像时设置默认加载的原图url为当前原图url+该参数即可,可直接附加到原图url中储存,不影响图片呈现。
$init_params = $_POST["__initParams"];
$result['sourceUrl'] = toVirtualPath($savePath) . $init_params;
move_uploaded_file($source_pic["tmp_name"], $savePath);
$success_num++;
}
}
后台处理缩略图在这里就不细说了,请下载压缩文件查看。有兴趣的朋友可以再看看<a href='http://www.sucaihuo.com/js/3.html' target='_blank'> PHP+jQuery+Ajax多图片上传</a>。
强大的flash头像上传插件(支持旋转、拖拽、剪裁、生成缩略图等)的更多相关文章
- php+flash头像上传组件
有会员系统的站点一般都会有一个头像上传组件,一般做的最简单的是 这样的方式长处是代码写的简单,仅仅要推断图片大小和类型,然后更新数据库.可是用户体验不高.并且站点其它页面假设要使用较小的20X20或1 ...
- php头像上传插件
最近找到了一个比较简单实用的php头像上传插件,兼容IE8及以上等主流浏览器,分享给大家.效果如下: 1.首页效果图:默认显示默认图片. 2.点击图片(拥有裁剪框,可以拖动.缩放.裁剪头像等功能,注意 ...
- h5图片上传预览与拖拽上传
图片上传: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- jQuery文件上传插件jQuery Upload File 有上传进度条
jQuery文件上传插件jQuery Upload File 有上传进度条 jQuery文件上传插件jQuery Upload File,插件使用简单,支持单文件和多文件上传,支持文件拖拽上传,有进度 ...
- Plupload上传插件简单整理
Plupload Plupload是有TinyMCE的开发者开发的,为您的内容管理系统或是类似上传程序提供一个高度可用的上传插件.Plupload 目前分为一个核心API 和一个jQuery上传队列部 ...
- Plupload上传插件中文帮助文档
Plupload上传插件中文帮助文档 配置参数 实例化一个plupload对象时,也就是 new plupload.Uploader(),需要传入一个对象作为配置参数.后面内容中出现的plupload ...
- Plupload上传插件中文文档
Plupload上传插件中文帮助文档 如有疑问,加群交流:646104701 下载地址:https://www.plupload.com/download/ 配置参数 实例化一个plupload对象时 ...
- 可拖拽和带预览图的jQuery文件上传插件ssi-uploader
插件描述:ssi-uploader是一款带预览图并且可以拖拽文件的jQuery ajax文件上传插件.该文件上传插件支持AJAX,支持多文件上传,可控制上的文件格式和文件大小,提供各种回调函数,使用非 ...
- 【React踩坑记四】React项目中引入并使用js-xlsx上传插件(结合antdesign的上传组件)
最近有一个前端上传并解析excel/csv表格数据的需求. 于是在github上找到一个14K star的前端解析插件 github传送门 官方也有,奈何实在太过于浅薄.于是做了以下整理,避免道友们少 ...
随机推荐
- ASP.NET MVC 视图(四)
ASP.NET MVC 视图(四) 前言 上篇对于利用IoC框架对视图的实现进行依赖注入,最后还简单的介绍一下自定义的视图辅助器是怎么定义和使用的,对于Razor语法的细节和辅助器的使用下篇会说讲到, ...
- ASP.NET MVC Model绑定(二)
ASP.NET MVC Model绑定(二) 前言 上篇对于Model绑定的简单演示想必大家对Model绑定的使用方式有一点的了解,那大家有没有想过Model绑定器是在什么时候执行的?又或是执行的过程 ...
- ABP源码分析四十一:ZERO的Audit,Setting,Background Job
AuditLog: 继承自Entity<long>的实体类.封装AuditLog的信息. AuditingStore: 实现了IAuditingStore接口,实现了将AuditLog的信 ...
- maven repo plugin archiver
Failure to transfer org.apache.maven:maven-archiver:pom:2.4.1 from http://repo1.maven.org/xxx was ca ...
- iOS-开发进阶
iOS完整学习路线图 iOS进阶介绍: 一.iOS-常用的第三方框架的介绍 二.iOS-提高iOS开发效率的方法和工具 三.常用的调试方法 1.iOS-调试技巧 2.iOS-Xcode的使用技巧 四. ...
- 使用nwjs开发桌面应用之Hello,World!
今天发现原来JavaScript也可以用来开发桌面应用程序,顿时有一种很牛逼的感觉,于是马上就开始了Hello,World!,感受一下JavaScript的强大. 可以用来开发桌面应用的js框架有三种 ...
- JavaScript权威设计--事件冒泡,捕获,事件句柄,事件源,事件对象(简要学习笔记十八)
1.事件冒泡与事件捕获 2.事件与事件句柄 3.事件委托:利用事件的冒泡技术.子元素的事件最终会冒泡到父元素直到跟节点.事件监听会分析从子元素冒泡上来的事件. 事件委托的好处: 1.每个函 ...
- 三个不常用的HTML元素:<details>、<summary>、<dialog>
前面的话 HTML5不仅新增了语义型区块级元素及表单类元素,也新增了一些其他的功能性元素,这些元素由于浏览器支持等各种原因,并没有被广泛使用 文档描述 <details>主要用于描述文档或 ...
- ASP.NET Core 中文文档 第四章 MVC(01)ASP.NET Core MVC 概览
原文:Overview of ASP.NET Core MVC 作者:Steve Smith 翻译:张海龙(jiechen) 校对:高嵩 ASP.NET Core MVC 是使用模型-视图-控制器(M ...
- 理解CSS前景色和透明度
前面的话 颜色的出现让网页不再只是黑白,运用好颜色设计,能让网页增色不少.一个网页给人们留下的第一印象实际上就是它的整体颜色.关于如何设置颜色,请移步CSS的6种颜色模式.实际上,颜色的应用主要分为前 ...