效果图如下:
HTML页面代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>flash上传头像组件演示</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css" media="screen"> html, body { height: 100%; background-color: #ffffff; } #flashContent { width: 100%; height: 100%; } </style> <script type="text/javascript"> //function uploadevent(status, picUrl, callbackdata) { function uploadevent(status) { alert(0); //alert(callbackdata); //后端返回数据 var picUrl = "/upload/"; status += ''; switch (status) { case '1': var time = new Date().getTime(); var filename162 = picUrl + '1.png'; var filename48 = picUrl + '2.png'; var filename20 = picUrl + "3.png"; document.getElementById('avatar_priview').innerHTML = "头像1 : <img src='" + filename162 + "?" + time + "'/> <br/> 头像2: <img src='" + filename48 + "?" + time + "'/><br/> 头像3: <img src='" + filename20 + "?" + time + "'/>"; break; case '-1': window.location.reload(); break; default: window.location.reload(); } } </script> </head> <body> <div id="altContent"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="650" height="450" id="myMovieName"> <param name="movie" value="avatar.swf"> <param name="quality" value="high"> <param name="bgcolor" value="#FFFFFF"> <param name="flashvars" value="imgUrl=./default.jpg&uploadUrl=./upfile.aspx&uploadSrc=false" /> <embed src="avatar.swf" quality="high" bgcolor="#FFFFFF" width="650" height="450" wmode="transparent" flashvars="imgUrl=./default.jpg&uploadUrl=./upfile.aspx&uploadSrc=false" name="myMovieName" align="" type="application/x-shockwave-flash" allowscriptaccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"> </embed> </object> <!--参数说明 imgUrl = default.jpg 默认图片 uploadUrl= upfile.php 接收图片接口 uploadSrc=false 是否上传原图 showCame=true 是否显示摄像头 pCut=162|162 裁切框大小 pSize=162|162|48|48|20|20 预览保存图片大小 pData=162|162|48|48|20|20 保存图片大小 例如: imgUrl=./default.jpg&uploadUrl=./upfile.php&uploadSrc=false&showCame=true&pCut=162|162&pSize=162|162|48|48|20|20&pData=162|162|48|48|20|20--> </div> <div id="avatar_priview"></div> </body> </html>
upfile.aspx 后台处理文件, cookie里保存的值可以取到,session不可以。
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System" %>
<%@ Page Language="C#" %>
<%
String pic = Request.Form["pic"];
String pic1 = Request.Form["pic1"];
String pic2 = Request.Form["pic2"];
String pic3 = Request.Form["pic3"];
string Token = WiSpeed.Common.CookieHelper.GetCookieValue("t");
string t = Session["t"] as string;
//原图
if (pic.Length == 0)
{
}
else
{
byte[] bytes = Convert.FromBase64String(pic); //将2进制编码转换为8位无符号整数数组
string url = "./src.png";
FileStream fs = new FileStream(Server.MapPath(url), System.IO.FileMode.Create);
fs.Write(bytes, 0, bytes.Length);
fs.Close();
}
byte[] bytes1 = Convert.FromBase64String(pic1); //将2进制编码转换为8位无符号整数数组.
byte[] bytes2 = Convert.FromBase64String(pic2); //将2进制编码转换为8位无符号整数数组.
byte[] bytes3 = Convert.FromBase64String(pic3); //将2进制编码转换为8位无符号整数数组.
//图1
string url1 = "./1.png";
FileStream fs1 = new FileStream(Server.MapPath(url1), System.IO.FileMode.Create);
fs1.Write(bytes1, 0, bytes1.Length);
fs1.Close();
//图2
string url2 = "./2.png";
FileStream fs2 = new FileStream(Server.MapPath(url2), System.IO.FileMode.Create);
fs2.Write(bytes2, 0, bytes2.Length);
fs2.Close();
//图3
string url3 = "./3.png";
FileStream fs3 = new FileStream(Server.MapPath(url3), System.IO.FileMode.Create);
fs3.Write(bytes3, 0, bytes3.Length);
fs3.Close();
Response.Write("{\"status\":1}");
%>