SWFUpload自定义性很强,非常适合做上传操作,但有时候我们只也可以用一些做好的f更简单的falsh完成这一功能。
下面我们就用一个比较简单的插件,效果如下
学习一个插件,我们可以先熟悉它提供的Demo。
1、Demo中,avatar.swf是执行上传的flash文件,default.jpg是默认显示的图片,demo.html是demo,可以直接复制里面的代码,upfile.aspx是执行上传的后台文件,其实我们可以用一般处理程序代替,没必要写aspx,xml的实际作用不了解无需修改。
2、demo.html中,有两个层,altContent存放flash,里面的东西最好不要修改,我们只需修改里面引用flash的路径及默认图片,avatar_priview用于显示上传成功后的图片,可以删除。JS中uploadevent上传成功后执行,status表示响应报文值,返回1则表示成功,执行
代码如下 | 复制代码 |
var time = new Date().getTime(); |
这段代码只是用于显示上传成功后的图片,可以删除。我修改后的demo.html
demo.html
代码如下 | 复制代码 |
words" content="flash头像上传组件,仿新浪微博头像上传组件,头像图片剪裁" /> codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" WIDTH="650" HEIGHT="450" id="myMovieName"> NAME="myMovieName" ALIGN="" TYPE="application/x-shockwave-flash" allowScriptAccess="always" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"> |
们大概了解了前台做了什么操作,下面我们看一下后台。
后台很简单,获取原图和修改大小后的三张图片:
代码如下 | 复制代码 |
String pic = Request.Form["pic"]; String pic1 = Request.Form["pic1"]; String pic2 = Request.Form["pic2"]; String pic3 = Request.Form["pic3"]; |
并通过File保存,当然,我们如果只需要一张图片,可以删除多余代码,也可以修改保存图片的地址。有了图片的地址,我们可以直接在这里将图片地址保存到数据库中。
这里要注意的是,返回响应报文
Response.Write("{"status":1}");是不能修改的,如果改为其他值,比如图片路径,那么后台执行上传是可以成功的,但前台无法响应上传成功,不能弹出上传成功的框。如果我们需要把后台处理后的路径返回前台,可以用Session或静态变量在后台保存值
upfile.ashx
代码如下 | 复制代码 |
public void ProcessRequest(HttpContext context) { String pic = context.Request.Form["pic"]; String pic1 = context.Request.Form["pic1"]; String pic2 = context.Request.Form["pic2"]; String pic3 = context.Request.Form["pic3"]; //原图 if (pic.Length == 0) { } else { byte[] bytes = Convert.FromBase64String(pic); //将2进制编码转换为8位无符号整数数组 string url = "./src.png"; FileStream fs = new FileStream(context.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 = "./https://img.111cn.net1.png";//需要修改图片保存地址,否则每次都是https://img.111cn.net1.png,第二次会覆盖,为避免重名,可以使用guid:string fileLoadName =Guid.NewGuid().ToString() + ".png"; FileStream fs1 = new FileStream(context.Server.MapPath(url1), System.IO.FileMode.Create); fs1.Write(bytes1, 0, bytes1.Length); fs1.Close(); //图2 string url2 = "./https://img.111cn.net2.png"; FileStream fs2 = new FileStream(context.Server.MapPath(url2), System.IO.FileMode.Create); fs2.Write(bytes2, 0, bytes2.Length); fs2.Close(); //图3 string url3 = "./https://img.111cn.net3.png"; FileStream fs3 = new FileStream(context.Server.MapPath(url3), System.IO.FileMode.Create); fs3.Write(bytes3, 0, bytes3.Length); fs3.Close(); //这里响应的是1,前台接收到json数组{status:1},如果返回图片地址,如改为context.Response.Write("{"status":"+url1+"}");则前台页面无法执行uploadevent方法,只能按固定格式{"status":1}。 //如果想返回图片路径,可以用静态类或session等方式。 context.Response.Write("{"status":1}"); } |
至此我们的截图上传功能就完成了。
电神魔傀2街机免费版 官方版v1.2.1
下载三国战纪2手游腾讯渠道服 安卓版v2.41.0.0
下载三国战纪2手游抖音渠道服 安卓版v2.41.0.0
下载三国战纪2折扣服 安卓版v2.41.0.0
下载叫我大掌柜小米版 安卓版v7.4.4
叫我大掌柜小米版是这款模拟经营类手游的渠道服版本,在此版本中
cooking fever正版 安卓最新版v23.0.2
cooking fever正版是一款非常好玩的模拟经营类手游
咖啡厅的生活故事 最新版v1.7
咖啡厅的生活故事是一款模拟经营游戏,玩家们在游戏中可以经营一
迅猛龙模拟器金币不减反增版 v1.1.8
迅猛龙模拟器无限金币版是一款动物模拟类游戏,玩家们将在游戏中
泽塔奥特曼升华器免广告版 v1.4
泽塔奥特曼升华器去广告版是游戏的破解版本,在该版本中为玩家去