FLASH实现ASP.NET MVC上传---Flash篇

先看下整体思路,整个上传,以flash按钮为入口

创建Flash,添加一个按钮,并命名为btn

添加类main.as

package  {
	import flash.display.*;
	import flash.events.*;
	import flash.net.*;
	import flash.ui.*;
	import flash.external.ExternalInterface;

	public class main extends Sprite {
		public var btn:SimpleButton;
		private var uid:String;
		private var jid:String;
		private var sn:String;
		//文件上传
		private var file:FileReference=new FileReference();
		//过滤
		private var images_filter:FileFilter = new FileFilter("*.jpg, *.jpeg, *.gif, *.png", "*.jpg;*.jpeg;*.gif;*.png");
		//上传地址
		private var uploadURL:URLRequest;
		//构造函数
		public function main() {
			////隐藏默认菜单
   			var contextmenu:ContextMenu = new ContextMenu;
   			contextmenu.hideBuiltInItems();
			//这个参数很重要,后面会提到,重要解决sessionID不一致的问题
			uid = stage.loaderInfo.parameters.ASPSESSID;
			jid = stage.loaderInfo.parameters.AUTHID;
			//提交地址
			uploadURL =  new URLRequest("/SwfUploadImg/?ASPSESSID=" + uid + "&AUTHID=" + jid);
			//场景点击事件
			btn.addEventListener(MouseEvent.CLICK, clickHandler);
			//选择图片后事件
			file.addEventListener(Event.SELECT, selectedHandler);
			file.addEventListener(Event.OPEN, openHandler);
   			file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
   			file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
   			file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
			file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler);
		}

		//点击按钮事件
		private function clickHandler(evt:MouseEvent):void
		{
			//显示选择图片对话框
			file.browse([images_filter]);
		}

		//图片选择后事件
		private function selectedHandler(e:Event):void
		{
			ExternalInterface.call("Laugh_UpImg_onSelected",file.name,file.size,file.type);
			//开始上传图片
			file.upload(uploadURL,"Filedata");
		}

		//开始上传
		private function openHandler(event:Event):void
		{
			ExternalInterface.call("Laugh_UpImg_onStart");
		}

		//上传完成
		private function uploadCompleteDataHandler(event:DataEvent):void
		{
			ExternalInterface.call("Laugh_UpImg_onComplete" , event.data);
		}

		//上传进度
		private function progressHandler(event:ProgressEvent):void
		{
			ExternalInterface.call("Laugh_UpImg_onProgress",event.bytesLoaded,event.bytesTotal);
		}

		//上传错误
		private function ioErrorHandler(event:IOErrorEvent):void
		{
			ExternalInterface.call("Laugh_UpImg_onError",event.text);
		}

		//上传权限错误
		private function securityErrorHandler(event:SecurityErrorEvent):void
		{
			ExternalInterface.call("Laugh_UpImg_onSecurityError",event.text);
		}
	}

}

代码解释:

ExternalInterface.call

调用外部JS代码,第一个参数为JS的函数名,后面一个参数为函数的实参。

根据注释可以判断出每个方法的作用。

stage.loaderInfo.parameters.ASPSESSID

接受页面传来的参数,用于提交给.net页面进行权限的验证

flash主要作为上传图片的主要工具,并且实现了客户端和服务端的即时数据更新。

时间: 2024-11-06 21:18:34

FLASH实现ASP.NET MVC上传---Flash篇的相关文章

FLASH实现ASP.NET MVC上传---.NET篇

其实在.NET MVC中保存图片最大的问题不是如何保存图片.而是身份验证. 为什么这样说,在firefox和Chrome中最大的问题是,flash作为插件出现.从而形成了两个终端. 在这种情况下,不同的useragent使用了不同的Cookie. SessionID也就不同了,所以作为Session来验证用户的方式,显得有些不太可行. 那么,看下思路 修改SessionID的代码,在Global.asax中 protected void Application_BeginRequest(obje

asp.net mvc上传头像加剪裁功能

正好项目用到上传+剪裁功能,发上来便于以后使用. 我不能告诉你们其实是从博客园扒的前台代码,哈哈. 前端是jquery+fineuploader+jquery.Jcrop 后台是asp.net mvc 4 核心的js调用代码是crop.js和helper文件夹下的ImgHandler.cs 效果图 前台代码 <link href="~/Content/fineuploader.css" rel="stylesheet" /> <link href=

ASP.NET MVC上传文件

出处:http://www.cnblogs.com/zhouhb/p/3906714.html 最近参考网络资料,学习了ASP.NET MVC如何上传文件.最基本的,没有用jQuery等技术. 1.定义Model public class TestModel    {        [Display(Name = "标题")]        [Required]        public string Title        {            get;           

asp.net mvc上传头像加剪裁功能介绍

正好项目用到上传+剪裁功能,发上来便于以后使用. 我不能告诉你们其实是从博客园扒的前台代码,哈哈. 前端是jquery+fineuploader+jquery.Jcrop 后台是asp.net mvc 4 核心的js调用代码是crop.js和helper文件夹下的ImgHandler.cs 效果图 前台代码 <link href="~/Content/fineuploader.css" rel="stylesheet" /><link href=&

ASP.NET MVC 上传文件

1.首先创建一控制器文件UpFileController.cs: using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc; namespace Mvc4Study.Controllers{ public class UpFileController : Controller { // // GET: /UpFile/ public ActionRes

ASP.NET MVC上传限制

今天快下班时候碰到个问题,系统上传附件失败,一看是用户上传了一个30M的PDF,正常思路在Web.config里面的httpruntime添加MaxRequestLength属性,并设置为最大,试了发现不行,依然上传失败.这时候再去看下ajax上传方法是不是哪里有问题,也没有,最后想到会不会是MVC的限制,百度了一下确实有这么个说法,配置如下: <security>      <requestFiltering>        <requestLimits maxAllowe

怎样解决asp.net.mvc上传附件超过长度问题?

最近,在做一个上传附件功能,但是文件超过4M,就报上传的文件超过长度问题 如何解决这个问题呢?这里我找了一下资料,了解一下问题所在,有3种解决方法 方案一:在所在项目的web.config配置文件中,修改maxRequestLength的值 方案二:在.net framework的安装目录下的machine.config配置文件,修改maxRequestLength的值 方案三:修改IIS服务的上传文件大小的限制 方案一: 1.修改web.config文件,改变这个maxRequestLengt

艾恩ASP无组件上传类(上传组件)说明文档(from www.sysoft.cc)

艾恩ASP无组件上传类(上传组件)说明文档2010-1-18 By Anlige一.简介自从接触ASP就开始接触上传,看过一些上传类,但是总感觉封装的还是不够简单,因此自己尝试写一个能够用最少最简单的代码实现各种上传方式的上传类.在学校期间就开始写,一点点的完善.优化,到现在的版本,现在的版本能适应各种上传方式.上传类的主要的功能如下:1.自由设置最大上传大小.单文件最大上传大小2.自由设置允许上传的文件类型3.可设置文本的编码,以适应各种上传环境4.内置进度条,a用户可选择开启和关闭5.多种错

关于MVC 上传文件

前台代码如下 @{ Layout = null; } <!DOCTYPE html> <html> <head> <title>Index</title> <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> <script t