精华内容
下载资源
问答
  • Flashas3发送和接收文件Flashas3发送和接收文件给asp,jsp文件
  • flash 上传文件

    2011-07-06 18:01:00
    Flash上传文件时如果接收页面想接受COOKIE或SESSION之类的东东 在IE下正常 在FF,或 CHROME下不正常 总的来说 IE 的 FLASH Active 在上传时能带COOKIE之类的 FF的 FLASH Plug-In 在上传时不能带COOKIE 我想...

    Flash上传文件时如果接收页面想接受COOKIE或SESSION之类的东东

    在IE下正常

    在FF,或 CHROME下不正常

    总的来说

    IE 的 FLASH Active  在上传时能带COOKIE之类的

    FF的 FLASH Plug-In 在上传时不能带COOKIE  

    我想应该不是FLASH的问题  因为这个BUG太明显了,推测是 插件本身的限制

    解决方法也很简单 在FF下使用带验证的上传时 在FLASH上传时把COOKIE也传上去

    FLASH通过JS获取COOKIE

    BUG常报

    Error #2044: 未处理的 IOErrorEvent       这样的错误

    转载于:https://www.cnblogs.com/mattins/archive/2011/07/06/2099441.html

    展开全文
  • FLASH文件上传组件

    千次阅读 2012-02-27 23:44:00
    可再次下载需要上传的FLASH文件 页面代码如下:标注为红色的为设置后台接受处理上传的服务端地址,可进行动态的参数传递 String param = request.getParameter("type"); int type =1; if(param!=null && !...

    组件官方地址:

    http://www.access2008.cn/update/

    可再次下载需要上传的FLASH文件

    页面代码如下:标注为红色的为设置后台接受处理上传的服务端地址,可进行动态的参数传递

    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@taglib uri="/WEB-INF/struts-tags.tld" prefix="s"%>
    <%
    String param = request.getParameter("type");
    int type =1;
    if(param!=null && !param.equals("")){
    	type = Integer.parseInt(param);
    }
    %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>图片批量上传</title>
    <meta name="keywords" content="" />
    	<style type="text/css">
    		body {
    			  background-color: #2C2C2C;
    			  font-size: 12px;
    		}
    		.box {
    			   background-color: #FFFFFF;
    			   height: auto;
    			   margin: 70px auto 20px;
    			   padding: 30px;
    			   width: 900px;
    		}
    		.boxZ {
    			  height: auto;
    			  margin-top: -100px;
    			  text-align: center;
    		}
    	</style>
    </head>
    
    <body>
    	<div class="box">
    			<div class="boxZ">
    				<script language="javascript">
    					function challs_flash_update(){ //Flash 初始化函数
    						var a={};
    						//定义变量为Object 类型
    					
    						a.title = "上传文件"; //设置组件头部名称
    						
    						a.FormName = "Filedata";
    						//设置Form表单的文本域的Name属性
    						
    						a.url='/cnpren/UploadFile?userId=<s:property value="#session.userId"/>&subLibraryId=<s:property value="#session.subLibraryId"/>&type='+<%=type%>+'&r=5'; 
    						//设置服务器接收代码文件
    						
    						a.parameter=""; 
    						//设置提交参数,以GET形式提交
    						
    						a.typefile=["Images (*.gif,*.png,*.jpg,*jpeg)","*.gif;*.png;*.jpg;*.jpeg;",
    									"GIF (*.gif)","*.gif;",
    									"PNG (*.png)","*.png;",
    									"JPEG (*.jpg,*.jpeg)","*.jpg;*.jpeg;"];
    						//设置可以上传文件 数组类型
    						//"Images (*.gif,*.png,*.jpg)"为用户选择要上载的文件时可以看到的描述字符串,
    						//"*.gif;*.png;*.jpg"为文件扩展名列表,其中列出用户选择要上载的文件时可以看到的 Windows 文件格式,以分号相隔
    						//2个为一组,可以设置多组文件类型
    						
    						a.UpSize=0;
    						//可限制传输文件总容量,0或负数为不限制,单位MB
    						
    						a.fileNum=0;
    						//可限制待传文件的数量,0或负数为不限制
    						
    						a.size=5;
    						//上传单个文件限制大小,单位MB,可以填写小数类型
    						
    						a.FormID=['select','select2'];
    						//设置每次上传时将注册了ID的表单数据以POST形式发送到服务器
    						//需要设置的FORM表单中checkbox,text,textarea,radio,select项目的ID值,radio组只需要一个设置ID即可
    						//参数为数组类型,注意使用此参数必须有 challs_flash_FormData() 函数支持
    						
    						a.autoClose=1;
    						//上传完成条目,将自动删除已完成的条目,值为延迟时间,以秒为单位,当值为 -1 时不会自动关闭,注意:当参数CompleteClose为false时无效
    						
    						a.CompleteClose=true;
    						//设置为true时,上传完成的条目,将也可以取消删除条目,这样参数 UpSize 将失效, 默认为false
    						
    						a.repeatFile=true;
    						//设置为true时,可以过滤用户已经选择的重复文件,否则可以让用户多次选择上传同一个文件,默认为false
    						
    						a.returnServer=true;
    						//设置为true时,组件必须等到服务器有反馈值了才会进行下一个步骤,否则不会等待服务器返回值,直接进行下一步骤,默认为false
    						
    						a.MD5File = 1;
    						//设置MD5文件签名模式,参数如下 ,注意:FLASH无法计算超过100M的文件,在无特殊需要时,请设置为0
    						//0为关闭MD5计算签名
    						//1为直接计算MD5签名后上传
    						//2为计算签名,将签名提交服务器验证,在根据服务器反馈来执行上传或不上传
    						//3为先提交文件基本信息,根据服务器反馈,执行MD5签名计算或直接上传,如果是要进行MD5计算,计算后,提交计算结果,在根据服务器反馈,来执行是否上传或不上传
    						
    						a.loadFileOrder=true;
    						//选择的文件加载文件列表顺序,TRUE = 正序加载,FALSE = 倒序加载
    						
    						a.mixFileNum=0;
    						//至少选择的文件数量,设置这个将限制文件列表最少正常数量(包括等待上传和已经上传)为设置的数量,才能点击上传,0为不限制
    						
    						a.ListShowType = 2;
    						//文件列表显示类型:1 = 传统列表显示,2 = 缩略图列表显示(适用于图片专用上传)
    						
    						a.InfoDownRight = "等待上传:%1%个  已上传:%2%个";
    						//右下角统计信息的文本设置,文本中的 %1% = 等待上传数量的替换符号,%2% = 已经上传数量的替换符号
    						
    						a.TitleSwitch = true;
    						//是否显示组件头部
    						
    						a.ForceFileNum=0;
    						//强制条目数量,已上传和待上传条目相加等于为设置的值(不包括上传失败的条目),否则不让上传, 0为不限制,设置限制后mixFileNum,autoClose和fileNum属性将无效!
    						
    						a.autoUpload = false;
    						//设置为true时,用户选择文件后,直接开始上传,无需点击上传,默认为false;
    						
    						a.adjustOrder = true;
    						//设置为true时,用户可以拖动列表,重新排列位置
    						
    						a.deleteAllShow = true;
    						//设置是否显示,全部清除按钮
    						
    						return a ;
    						//返回Object
    					}
    					
    					function challs_flash_onComplete(a){ //每次上传完成调用的函数,并传入一个Object类型变量,包括刚上传文件的大小,名称,上传所用时间,文件类型
    						var name=a.fileName; //获取上传文件名
    						var size=a.fileSize; //获取上传文件大小,单位字节
    						var time=a.updateTime; //获取上传所用时间 单位毫秒
    						var type=a.fileType; //获取文件类型,在 Windows 上,此属性是文件扩展名。 在 Macintosh 上,此属性是由四个字符组成的文件类型
    						document.getElementById('show').innerHTML+=name+' --- '+size+'字节 ----文件类型:'+type+'--- 用时 '+(time/1000)+'秒<br><br>'
    					}
    					
    					function challs_flash_onCompleteData(a){ //获取服务器反馈信息事件
    						document.getElementById('show').innerHTML+='<font color="#ff0000">服务器端反馈信息:</font><br />'+a+'<br />';	
    					}
    					function challs_flash_onStart(a){ //开始一个新的文件上传时事件,并传入一个Object类型变量,包括刚上传文件的大小,名称,类型
    						var name=a.fileName; //获取上传文件名
    						var size=a.fileSize; //获取上传文件大小,单位字节
    						var type=a.fileType; //获取文件类型,在 Windows 上,此属性是文件扩展名。 在 Macintosh 上,此属性是由四个字符组成的文件类型
    						document.getElementById('show').innerHTML+=name+'开始上传!<br />';
    						
    						return true; //返回 false 时,组件将会停止上传
    					}
    					
    					function challs_flash_onCompleteAll(a){ //上传文件列表全部上传完毕事件,参数 a 数值类型,返回上传失败的数量
    						document.getElementById('show').innerHTML+='<font color="#ff0000">所有文件上传完毕,</font>上传失败'+a+'个!<br />';
    						//window.location.href='http://www.access2008.cn/update'; //传输完成后,跳转页面
    					}
    					
    					function challs_flash_deleteAllFiles(){ //清空按钮点击时,出发事件
    					
    						//返回 true 清空,false 不清空
    						return confirm("你确定要清空列表吗?");
    					}
    					
    					function challs_flash_onError(a){ //上传文件发生错误事件,并传入一个Object类型变量,包括错误文件的大小,名称,类型
    						var err=a.textErr; //错误信息
    						var name=a.fileName; //获取上传文件名
    						var size=a.fileSize; //获取上传文件大小,单位字节
    						var type=a.fileType; //获取文件类型,在 Windows 上,此属性是文件扩展名。 在 Macintosh 上,此属性是由四个字符组成的文件类型
    						document.getElementById('show').innerHTML+='<font color="#ff0000">'+name+' - '+err+'</font><br />';
    					}
    					
    					function challs_flash_onSelectFile(a){ //用户选择文件完毕触发事件,参数 a 数值类型,返回等待上传文件数量
    						document.getElementById('show').innerHTML+='<font color="#ff0000">文件选择完成:</font>等待上传文件'+a+'个!<br />';
    					}
    					
    					function challs_flash_FormData(a){ // 使用FormID参数时必要函数
    						try{
    							var value = '';
    							var id=document.getElementById(a);
    							if(id.type == 'radio'){
    								var name = document.getElementsByName(id.name);
    								for(var i = 0;i<name.length;i++){
    									if(name[i].checked){
    										value = name[i].value;
    									}
    								}
    							}else if(id.type == 'checkbox'){
    								var name = document.getElementsByName(id.name);
    								for(var i = 0;i<name.length;i++){
    									if(name[i].checked){
    										if(i>0) value+=",";
    										value += name[i].value;
    									}
    								}
    							}else if(id.type == 'select-multiple'){
    							    for(var i=0;i<id.length;i++){
    							        if(id.options[i].selected){
    										if(i>0) value+=",";
    								         values += id.options[i].value; 
    								    }
    							    }
    							}else{
    								value = id.value;
    							}
    							return value;
    						 }catch(e){
    							return '';
    						 }
    					}
    					
    					function challs_flash_style(){ //组件颜色样式设置函数
    						var a = {};
    						
    						/*  整体背景颜色样式 */
    						a.backgroundColor=['#f6f6f6','#f3f8fd','#dbe5f1'];	//颜色设置,3个颜色之间过度
    						a.backgroundLineColor='#5576b8';					//组件外边框线颜色
    						a.backgroundFontColor='#066AD1';					//组件最下面的文字颜色
    						a.backgroundInsideColor='#FFFFFF';					//组件内框背景颜色
    						a.backgroundInsideLineColor=['#e5edf5','#34629e'];	//组件内框线颜色,2个颜色之间过度
    						a.upBackgroundColor='#ffffff';						//上翻按钮背景颜色设置
    						a.upOutColor='#000000';								//上翻按钮箭头鼠标离开时颜色设置
    						a.upOverColor='#FF0000';							//上翻按钮箭头鼠标移动上去颜色设置
    						a.downBackgroundColor='#ffffff';					//下翻按钮背景颜色设置
    						a.downOutColor='#000000';							//下翻按钮箭头鼠标离开时颜色设置
    						a.downOverColor='#FF0000';							//下翻按钮箭头鼠标移动上去时颜色设置
    						
    						/*  头部颜色样式 */
    						a.Top_backgroundColor=['#e0eaf4','#bcd1ea']; 		//颜色设置,数组类型,2个颜色之间过度
    						a.Top_fontColor='#245891';							//头部文字颜色
    						
    						
    						/*  按钮颜色样式 */
    						a.button_overColor=['#FBDAB5','#f3840d'];			//鼠标移上去时的背景颜色,2个颜色之间过度
    						a.button_overLineColor='#e77702';					//鼠标移上去时的边框颜色
    						a.button_overFontColor='#ffffff';					//鼠标移上去时的文字颜色
    						a.button_outColor=['#ffffff','#dde8fe']; 			//鼠标离开时的背景颜色,2个颜色之间过度
    						a.button_outLineColor='#91bdef';					//鼠标离开时的边框颜色
    						a.button_outFontColor='#245891';					//鼠标离开时的文字颜色
    						
    						/* 文件列表样式 */
    						a.List_scrollBarColor="#000000"						//列表滚动条颜色
    						a.List_backgroundColor='#EAF0F8';					//列表背景色
    						a.List_fontColor='#333333';							//列表文字颜色
    						a.List_LineColor='#B3CDF1';							//列表分割线颜色
    						a.List_cancelOverFontColor='#ff0000';				//列表取消文字移上去时颜色
    						a.List_cancelOutFontColor='#D76500';				//列表取消文字离开时颜色
    						a.List_progressBarLineColor='#B3CDF1';				//进度条边框线颜色
    						a.List_progressBarBackgroundColor='#D8E6F7';		//进度条背景颜色	
    						a.List_progressBarColor=['#FFCC00','#FFFF00'];		//进度条进度颜色,2个颜色之间过度
    						
    						/* 错误提示框样式 */
    						a.Err_backgroundColor='#C0D3EB';					//提示框背景色
    						a.Err_fontColor='#245891';							//提示框文字颜色
    						a.Err_shadowColor='#000000';						//提示框阴影颜色
    						
    						
    						return a;
    					}
    					
    					
    					var isMSIE = (navigator.appName == "Microsoft Internet Explorer");   
    					function thisMovie(movieName){   
    					  if(isMSIE){   
    					  	return window[movieName];   
    					  }else{
    					  	return document[movieName];   
    					  }   
    					}
    					
    				</script>
    				
    				<p> </p>
    				<p> </p>
    				<p> </p>
    				改变窗口:高
    				<label>
    					:
    					<input name="gao" type="text" id="gao" value="450" size="5"/>
    					宽:
    				</label>
    				<label>
    					<input name="kuan" type="text" id="kuan" value="700" size="5"/>
    				</label>
    				<label>
    
    					<input type="submit" name="button" id="button" value=" 修 改 "
    						onClick="thisMovie('update').width=document.getElementById('kuan').value;thisMovie('update').height=document.getElementById('gao').value;"/>
    				</label>
    				<br/>
    				<br/>
    				<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
    					codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0"
    					width="700" height="450" id="update" align="middle">
    					<param name="allowFullScreen" value="false" />
    					<param name="allowScriptAccess" value="always" />
    					<param name="movie" value="update.swf" />
    					<param name="quality" value="high" />
    					<param name="bgcolor" value="#ffffff" />
    
    					<embed src="update.swf" quality="high" bgcolor="#ffffff"
    						width="700" height="450" name="update" align="middle"
    						allowScriptAccess="always" allowFullScreen="false"
    						type="application/x-shockwave-flash"
    						pluginspage="http://www.macromedia.com/go/getflashplayer" />
    				</object>
    				<div id="show"
    					style="margin-top: 20px; width: 500px; text-align: left;"></div>
    			</div>
    		</div>
    </body>
    </html>
    



    展开全文
  • 一、实现原理。在某些场合,我们需要使用Flash进行“文件上传”,原因是Flash 能制作出表现力丰富的UI界面。 (自负又孤陋寡闻的我在这里做一个补充:Flash使用flash.net包中的F
    原文地址为:
    Flash上传文件(结合asp.net)
    

    一、实现原理。
    在某些场合,我们需要使用 Flash进行“文件 上传”,原因是Flash 能制作出表现力丰富的UI界面。

    (自负又孤陋寡闻的我在这里做一个补充:Flash使用flash.net包中的FileReference是可以发送文件数据到一个asp,asp.net或php页的,可以看浪子的[Flash FileUpload]用flash.net.FileReference实现ASP.NET无刷新文件上传,codeproject有这样的示例:Multiple File Upload With Progress Bar Using Flash and ASP.NET,Flash8的帮助中有FileReference的详细说明及示例。)

    所以本文是用另一个方法来实现Flash的文件上传的,本文Flash上传文件的实现原理是:

    通过Flash和页面中的Javascript通信(这时候是Flash->Javascript),调用JavaScript控制一个隐藏的含有文件域的表单,发送文件数据到后台程序页面(asp,aspx,php等),后台程序接收到上传的文件数据后,进行保存等处理,最后反馈信息给Flash(这时候就是Javascript->Flash)。

    我们先来看下面这个截图:
    3ac9219a29e5c101073590247812c068.jpe
    这是一个Flash界面,可以“实现文件上传”,并进行相应提示(成功/失败),下面我们就来制作这样的程序。

    二、准备工作。
    本文的目的就是教大家制作这样功能的Flash程序,在进行之前,我们需要一些技术上的准备,我们需要知道:
    ·Flash如何调用Html页面中的JavaScript?
    ·JavaScript如何发送数据给Flash?

    1. Flash如何调用Html页面中的JavaScript?(Flash->Javascript)
    下面介绍两种方法:
    A.在Flash中使用getURL 函数:
    9310e85a14af99de4811ff4c77f1f911.jpe 24a924a57ba6b3f2b51fc9edb7ea4186.jpe
    getURL(url:String, [window:String, [method:String]]) : Void

    将来自特定 URL 的文档加载到窗口中,或将变量传递到位于所定义的 URL 的另一个应用程序。若要测试此函数,请确保要加载的文件位于指定的位置。若要使用绝对 URL(例如,http://www.myserver.com),则需要网络连接。

    可用性:Flash Player 
    4;ActionScript 1.0

    参数
    url:String - 可从该处获取文档的 URL。

    window:String 
    [可选] - 指定应将文档加载到其中的窗口或 HTML 帧。您可输入特定窗口的名称,或从下面的保留目标名称中选择: 

    _self 指定当前窗口中的当前帧。 
    _blank 指定一个新窗口。 
    _parent 指定当前帧的父级。 
    _top 指定当前窗口中的顶级帧。 
    method:String 
    [可选] - 用于发送变量的 GET 或 POST 方法。如果没有变量,则省略此参数。GET 方法将变量附加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送长字符串的变量。

    getURL 函数的原义是,在指定的Html页面框架(frame)中,打开指定的网页。
    这里,我们把url网址写成一段Javascript脚本即可在页面中执行,如:
    getURL("Javascript:alert('OK')");
    这句的执行效果相当于在Html中的:

    731655954c7be9d8835ece551b5385f8.jpe < script >
    731655954c7be9d8835ece551b5385f8.jpealert(
    " OK " );
    731655954c7be9d8835ece551b5385f8.jpe
    </ script >

    在Flash中使用getURL函数,可以调用当前Html页面中的任何Javascript脚本。

    B.在Flash中使用fscommand函数:
    fscommand(command:String, parameters:String) : Void

    在Web浏览器中,fscommand()执行后将调用JavaScript函数moviename_DoFScommand,该函数位于包含 SWF文件的Web页中。moviename为用于EMBED标签的NAME属性或OBJECT标签的ID属性。
    如:我们对SWF文件指定OBJECT标签的ID=myMovie,则调用JavaScript函数myMovie_DoFScommand
    在这种用法下,commandparameters参数可以是任意的字符串或表达式。

    如Flash中执行:

    731655954c7be9d8835ece551b5385f8.jpefscommand("upload""");

    则web页中的:

    function FlashUpload_DoFScommand(command, args) {
    }

    函数将被执行,两个函数的参数依次相对应,即会有command="upload",args="";

    另外,在web页中使用fscommand时,还应该指定一个参数swLiveConnect=true,如:

    9310e85a14af99de4811ff4c77f1f911.jpe24a924a57ba6b3f2b51fc9edb7ea4186.jpe
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="445" height="50" id="FlashUpload" align="middle">
        <param name="movie" value="FlashUpload.swf" />
        <param name="allowScriptAccess" value="always" />
        <param name="swLiveConnect" value="true" />
        <embed src="FlashUpload.swf" width="445" allowScriptAccess="always" height="50" name="FlashUpload" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" 
    swLiveConnect="true"/>
      </object>

     swLiveConnect属性的含义是:指定此参数会让Flash Player在第一次加载时,启动Java,从而使fscommand可以起作用。

    2. JavaScript如何发送数据给Flash? (Javascript->Flash)
    方法是在Javascript中使用SetVariable。
    语法:SetVariable( variableName, value ) 

    如下这段Javascript脚本的执行后会将Flash中名为txtbox的变量值修改为"1234":

    var  flash  =  document.getElementById( " FlashObjectId " );
     flash.SetVariable("txtbox", "1234");

    更多关于Flash和Javascript通信的内容,可以看这里:
    JavaScript 和 Flash 的通信
    FLASH与JAVASCRIPT的通信

    三、制作Flash。
    启动Flash,新建一个空白文档,命名为:FlashUpload.fla;

    9e00e4c9a241a646005b9e926b67c85e.jpe

    如上图所示,场景背景色设为绿色,然后放置两个“动态文本”框:
    上边带框线的文本框变量设置为:file,制作一个“浏览”按钮与其组合后来模仿web页中的文件域;
    下边的文本框变量设置为:msg,用来显示提示信息;
    最后还有一个“上传”按钮。

    “浏览”按钮上添加如图代码:
    1590e3e335c7d485d1f1804d8bf434e0.jpe

    “上传”按钮上添加如图代码:
    db3b4e56e420027c5b97516426681950.jpe

    这里的Flash对Javascript通信我使用了fscommand,fscommand的参数内容可以任意,我们让“浏览”按钮传递“browser”字符串过去,“上传”按钮传递“upload”字符串。后边的web页中会根据这两个字符串来进行不同的操作。使用getURL时,浏览器会产生“哒”的声音,使用fscommand则不会产生声音。

    完成后保存,编译(ctrl+enter),生成FlashUpload.swf文件。

    四、将FlashUpload.swf文件插入FlashUpload.html文件。
    创建一个html文件:FlashUpload.html,插入FlashUpload.swf,同时编写响应fscommand命令的Javascript函数:FlashUpload_DoFScommand,完整的html文件内容如下:

    9310e85a14af99de4811ff4c77f1f911.jpe 24a924a57ba6b3f2b51fc9edb7ea4186.jpe
    <head>
    <title>FlashUploadDemo</title>
    <script language="javascript">
    <!--
    //flash->javascript
    function FlashUpload_DoFScommand(command, args) {
        
    var file = window.uploadFrame.document.getElementById("File1");
        
    var form1 = window.uploadFrame.document.getElementById("form1");
        
    if (command == "browser")
        {
            file.click();        
        }
        
    if (command == "upload"&&file.value != "")
        {
            window.uploadFrame.setFlash(
    "msg","正在上传文件,请稍候222530190136c9c4cfd237cc0d5cff99.jpe");
            form1.submit();    
        }
    else if (file.value == ""){
            window.uploadFrame.setFlash(
    "msg","请选择一个文件.");
        }
    }

    if (navigator.appName && navigator.appName.indexOf("Microsoft"!= -1 && 
      navigator.userAgent.indexOf(
    "Windows"!= -1 && navigator.userAgent.indexOf("Windows 3.1"== -1) {
      document.write('
    <SCRIPT LANGUAGE=VBScript\> \n');
      document.write('on error resume next \n');
      document.write('Sub FlashUpload_FSCommand(ByVal command, ByVal args)\n');
      document.write(' Call FlashUpload_DoFScommand(command, args)\n');
      document.write('End Sub\n');
      document.write('
    </SCRIPT\> \n');

    //-->
    </SCRIPT>
    </head>
    <body>
      
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="445" height="50" id="FlashUpload" align="middle">
        
    <param name="movie" value="FlashUpload.swf" />
        
    <param name="allowScriptAccess" value="always" />
        
    <param name="swLiveConnect" value="true" />
        
    <embed src="FlashUpload.swf" width="445" allowScriptAccess="always" height="50" name="FlashUpload" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" swLiveConnect="true"/>
      
    </object>
      
    <BR>
      
    <iframe frameborder="0" name="uploadFrame" width="0" height="0" src="Upload.aspx"></iframe>
    </body>
    </html>

    这里就是注意一些变量和值的使用,我用不同的颜色做了标识。下一步要出现的Upload.aspx文件被放置在一个宽、高、边框均为0的Iframe里,达到隐藏效果。

    Flash中的fscommand使用执行后,web页中的FlashUpload_DoFScommand函数会被执行,此函数中又对隐藏的Iframe进行操作,从而进行文件上传。

    五、Upload.aspx:文件保存页面。

    731655954c7be9d8835ece551b5385f8.jpe <% @ Page Language = " C# "   %>
    731655954c7be9d8835ece551b5385f8.jpe
    < script runat = " server " >
    24a924a57ba6b3f2b51fc9edb7ea4186.jpe9310e85a14af99de4811ff4c77f1f911.jpe
    protected   override   void   OnLoad(EventArgs e) 222530190136c9c4cfd237cc0d5cff99.jpe {
    1408c5260b2f05e450dee929db9be5f7.jpe    
    if (IsPostBack)
    715f2d05503b99d41f3b6ba2cdccc84d.jpee083dfde5a91f50979fe8979b4012b9d.jpe    
    222530190136c9c4cfd237cc0d5cff99.jpe{
    1408c5260b2f05e450dee929db9be5f7.jpe        
    string msg = string.Empty;
    1408c5260b2f05e450dee929db9be5f7.jpe        
    try
    715f2d05503b99d41f3b6ba2cdccc84d.jpee083dfde5a91f50979fe8979b4012b9d.jpe        
    222530190136c9c4cfd237cc0d5cff99.jpe{
    1408c5260b2f05e450dee929db9be5f7.jpe            
    if (File1.PostedFile.ContentLength > 0)
    715f2d05503b99d41f3b6ba2cdccc84d.jpee083dfde5a91f50979fe8979b4012b9d.jpe            
    222530190136c9c4cfd237cc0d5cff99.jpe{
    1408c5260b2f05e450dee929db9be5f7.jpe                
    //在此进行文件合法性判断,然后进行保存.
    1408c5260b2f05e450dee929db9be5f7.jpe                
    //222530190136c9c4cfd237cc0d5cff99.jpe
    1408c5260b2f05e450dee929db9be5f7.jpe                
    //File1.PostedFile.SaveAs(@"C:\abc.ext");
    1408c5260b2f05e450dee929db9be5f7.jpe
                    
    1408c5260b2f05e450dee929db9be5f7.jpe                msg 
    = "文件" + File1.PostedFile.FileName.Replace(@"\"@"\\"+ "(" + File1.PostedFile.ContentLength.ToString() + "字节)上传成功.";
    5bcb1807ee3e00d2b3c225f0b3f5c751.jpe            }

    1408c5260b2f05e450dee929db9be5f7.jpe            
    else
    715f2d05503b99d41f3b6ba2cdccc84d.jpee083dfde5a91f50979fe8979b4012b9d.jpe            
    222530190136c9c4cfd237cc0d5cff99.jpe{
    1408c5260b2f05e450dee929db9be5f7.jpe                msg 
    = ("请选择一个有效的文件.");
    5bcb1807ee3e00d2b3c225f0b3f5c751.jpe            }
      
    5bcb1807ee3e00d2b3c225f0b3f5c751.jpe        }

    1408c5260b2f05e450dee929db9be5f7.jpe        
    catch
    715f2d05503b99d41f3b6ba2cdccc84d.jpee083dfde5a91f50979fe8979b4012b9d.jpe        
    222530190136c9c4cfd237cc0d5cff99.jpe{
    1408c5260b2f05e450dee929db9be5f7.jpe            msg 
    = "上传文件失败.";
    5bcb1807ee3e00d2b3c225f0b3f5c751.jpe        }

    1408c5260b2f05e450dee929db9be5f7.jpe
    1408c5260b2f05e450dee929db9be5f7.jpe        
    this.RegisterClientScriptBlock("setFlash""<script>setFlash('msg','" + msg + "');<" + "/script>");
    5bcb1807ee3e00d2b3c225f0b3f5c751.jpe    }

    f466905a3bcb5dcef110eab799825254.jpe}

    731655954c7be9d8835ece551b5385f8.jpe
    </ script >
    731655954c7be9d8835ece551b5385f8.jpe
    731655954c7be9d8835ece551b5385f8.jpe
    < html >
    731655954c7be9d8835ece551b5385f8.jpe
    < head >
    731655954c7be9d8835ece551b5385f8.jpe    
    < title > SaveFile </ title >     
    731655954c7be9d8835ece551b5385f8.jpe    
    < script language = javascript >
    731655954c7be9d8835ece551b5385f8.jpe    
    // javascript->flash
    731655954c7be9d8835ece551b5385f8.jpe
        var flash  =  parent.document.getElementById( " FlashUpload " );
    731655954c7be9d8835ece551b5385f8.jpe    function setFlash(obj,value)
    24a924a57ba6b3f2b51fc9edb7ea4186.jpe9310e85a14af99de4811ff4c77f1f911.jpe    
    222530190136c9c4cfd237cc0d5cff99.jpe {
    1408c5260b2f05e450dee929db9be5f7.jpe        flash.SetVariable(obj, value);
    f466905a3bcb5dcef110eab799825254.jpe    }

    731655954c7be9d8835ece551b5385f8.jpe    
    </ script >
    731655954c7be9d8835ece551b5385f8.jpe
    </ head >
    731655954c7be9d8835ece551b5385f8.jpe
    < body bgcolor = " #99ff33 " >
    731655954c7be9d8835ece551b5385f8.jpe    
    < form id = " form1 "  runat = " server " >
    731655954c7be9d8835ece551b5385f8.jpe    
    < div >
    731655954c7be9d8835ece551b5385f8.jpe        
    < input id = " File1 "  runat = " server "  type = " file "  onChange = " setFlash('file',this.value); " /></ div >
    731655954c7be9d8835ece551b5385f8.jpe    
    </ form >
    731655954c7be9d8835ece551b5385f8.jpe
    </ body >
    731655954c7be9d8835ece551b5385f8.jpe
    </ html >
    731655954c7be9d8835ece551b5385f8.jpe

    这个页的内容比较简单,目的是用来接收数据并保存,单独运行效果如下:
    11007b978af66273b80cbd99467b0526.jpe
    因为这个页面中表单的提交是通过Flash调用Javascript脚本来进行的,所以这个页面中没有提交按钮,假如有提交按钮,这个页本身应该可以进行文件上传。最后这个页是被放置在一个隐藏的IFrame框架中的,用户并不可见。

    需要注意是就是这个页中使用 SetVariable向Flash发送数据(回馈信息)。

    完成后的整体运行效果,就是本文开头的那张图片。

    本文示例在Flash8+.Net1.1下制作并在IE下测试通过。
     
    本文完整的源代码下载(122K)>>


    (由于文件上传的特殊性,Flash上传文件必须这么“麻烦”的调用Javascript 和隐藏的表单来完成。除此之外,Flash是支持直接Post数据到一个aspx页面的,如使用 sendAndLoad方法。另外有国外闪客写了一个yamzbrowser的Flash插件,能够使用Flash实现文件上传功能,但原理也基于此。)
    转载请注明本文地址: Flash上传文件(结合asp.net)
    展开全文
  • 使用FlashFTP上传文件到指定服务器 文章目录使用FlashFTP上传文件到指定服务器前言安装FlashFTp新建站点传输文件实现公网访问 前言 我们刚买好服务器,迫不及待地想把自己写好的东西放到服务器上,通过公网来进行...

    使用FlashFTP上传文件到指定服务器

    前言

    我们刚买好服务器,迫不及待地想把自己写好的东西放到服务器上,通过公网来进行访问。
    这里使用一种比较简单的实现方法,用FlashFTP上传文件到指定服务器上,通过自己服务器的 ip 即可访问

    安装FlashFTp

    这里我们下载flashftp5.4版本,下载地址为:https://www.flashfxp.com/download

    安装flashftp时,第一个页面是检查更新,不要勾选,其余的页面默认即可,flashftp本身很小,不占什么空间。
    在这里插入图片描述
    flashftp是要钱的,但是有30天的试用期,足够我们用一阵了。

    新建站点

    我们打开flashftp软件,点击软件上方的站点-站点管理器,当然我们也可以按下F4键快捷打开。
    在这里插入图片描述
    点击左下角的新建站点,站点名就自己随便起一个
    在这里插入图片描述
    连接类型选择SFTP,地址输入自己服务器的 ip 地址,端口用 22 端口,登录类型默认为普通,用户名和密码输入服务器的用户名和密码。先点击应用,再点击连接。
    在这里插入图片描述
    点击连接后,可能会连接失败,不要惊慌,我们点击远程浏览器上方的连接按钮,对刚才新建的站点进行重新连接,这时候会弹出一个接受主机密钥的窗口,我们点击接受并保存,这样就成功连接上我们的服务器了。
    在这里插入图片描述
    在这里插入图片描述

    传输文件

    我们找到服务器上nginx的安装位置,比如我的安装位置为usr/local 文件夹。我们现在来上传一个html文件。
    在这里插入图片描述
    我们点击nginx文件夹,再点击进入里面的html文件夹
    在这里插入图片描述
    现在在左侧本地浏览器界面选择要传输的文件,右键然后单击“传输选中的项”。
    在这里插入图片描述
    这时候我们看到右边远程浏览器中已经上传成功。
    在这里插入图片描述

    实现公网访问

    我们退出html文件夹,进入conf文件夹,选中nginx.conf,右键然后单击“编辑”
    在这里插入图片描述
    在里面找到index所在的位置,将index 指定的index.html改为我们刚上传的homepage.html文件。
    在这里插入图片描述
    现在我们去登录我们的服务器,找到nginx安装的所在文件夹,比如我的nginx安装在/usr/local/文件夹,我们要进入nginx的sbin文件夹,于是我们输入命令:

    cd /usr/local/nginx/sbin

    然后对nginx进行重新加载即可

    ./nginx -s reload

    这个时候我们打开浏览器,输入自己服务器的 ip 地址,发现现在加载的页面不再是默认的 Welcome to Nginx 页面,而是我们刚上传的homepage.html文件了。公网访问成功。

    展开全文
  • 用flex3开发的多文件批量上传工具,实现文件批量上传,并带进度条;...通过JS设置可上传文件的扩展名、允许最大上传长度与接收文件的后台文件路径,通过修改上传页面的js代码设置,即可适用,适合所有上传应用的需求
  • FLASH批量上传文件第二版

    热门讨论 2010-12-08 16:50:11
    3、通过配置JS文件,实现控制允许上传哪些文件、最大长度、接收文件的代码、获取已经上传文件的代码等等,经过简单修改就可以适合大部分应用,如下: //var fileType="*.wmv;*.rmvb;*.rar"; var fileType="*....
  • Flash上传文件(结合asp.net)

    千次阅读 2007-04-10 19:52:00
    Flash上传文件(结合asp.net) 一、实现原理。在某些场合,我们需要使用Flash进行“文件上传”,原因是Flash 能制作出表现力丰富的UI界面。 (自负又孤陋寡闻的我在这里做一个补充:Flash使用flash.net包中的...
  • 文件上传Flash版组件 temp.html 上传调用实例 update_.swf 上传FLASH文件 update.asp 接收示例 ASP版 update.php 接收示例 php版
  • 这是一个通过串口将文件(如字库)存储到flash的c语言程序
  • //uploadParam:处理上传文件的网页所接收的参数 //ItemDate:单个文件大小控制,单位是字节 //TotalDate:一次上传的文件总大小控制,单位是字节 //TotalCount:一次上传文件的数量控制 //Ext:上传文件的扩展名 //...
  • FLASH文件批量上传应用(第一版)

    千次阅读 2010-12-08 16:57:00
    通过JS设置可上传文件的扩展名、允许最大上传长度与接收文件的后台文件路径,通过修改上传页面的js代码设置,即可适用,适合所有上传应用的需求 <br />配置代码:   var fileType="*.jpg;...
  • S03_CH11_基于TCP的QSPI Flash bin文件网络烧写 11.1概述 针对ZYNQ中使用QSPI BOOT的应用,将BOOT.bin文件烧写至QSPI Flash基本都是通过USB Cable连接PC,由JTAG口连接板卡后,在SDK软件中使用“Program Flash”功能...
  • 第25章 串行FLASH文件系统FatFs

    千次阅读 2018-08-24 13:55:05
    在上一章我们已经写好了QSPI Flash芯片的驱动函数,我们可以非常方便的在QSPI Flash芯片上读写数据。如需要记录本书的书名“零死角玩转STM32-F7系列”,可以把这些文字转化成ASCII码,存储在数组中,然后调...
  • 原本使用的资料基本上都是用flash8(AS2.0)制作的,但是现在需求提升了,所以希望能找到一种几乎不改变原fla文件并且还能访问并发送里面特定变量的办法。 找了两三天,才找到一种不算办法的可行办法。 思路是在...
  • 替代Flash文件上传插件 由于Flash已被Chorme、FireFox、IE等各大主流浏览器彻底废止,所以必须寻找替代原有基于Flash文件上传插件的方案。 利用熟悉的JQuery、HTML5 的 XMLHttpRequest,可以实现替代原有基于...
  • flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据。 位于www.a.com域中的SWF文件要访问www.b.com的文件时,SWF首先会检查www.b.com...
  • Flash安全沙箱和跨域文件

    千次阅读 2013-05-02 13:01:09
    Flash安全沙箱和跨域文件 1.1 简述flash的安全沙箱  1.Flash有四种基本的沙箱类型: Remote: swf来自网络,遵守域的沙箱规则,不能读取不同域中的资源,除非有设置。 Local with file :swf是本地...
  • 日志标题:flash中载入外部文件的动作发表时间:2005-11-18 18:27:38载入外部文件的动作 Flash动作脚本语言中的loadVariables动作的作用是从外部文件中载入变量和设置变量的值。该动作的语法格式如下:loadVariables...
  • Flash接收URL参数

    千次阅读 2010-07-02 08:35:00
    我用Flash CS3自动生成的的网页文件代码如下(请注意红色代码部分):  <mce:script language="javascript"><!--  if (AC_FL_RunContent == 0) {  alert("此页需要 AC_RunActiveContent.js...
  • FatFs 支持 FAT12、FAT16、FAT32 等格式,所以我们利用前面写好的 SPI Flash 芯片驱动,把 FatFs 文件系统代码移植到工程之中,就可以利用文件系统的各种函数,对 SPI Flash 芯片以“文件”格式进行读写操
  • 解决使用FireFox下Flash上传文件时SESSION丢失的问题(swfupload)   这几天在项目中遇到的问题,稍微整理一下。 HTML 表单是我们常用来进行浏览器与服务器数据交互的途径,除了传递普通的文本数据,通过 ...
  • 在STM32ZET6移植文件系统FatFs,以文件的形式存储数据到flash中。并给出了恢复w25q128的出厂文件的方法。
  • Flash Socket安全问题的全面解析 1、问题描述 <br /> 将flash 发布为html格式后,加载页面后,swf 无法与服务器 进行socket 通信。Flash端显示的错误为: securityErrorHandler信息: ...
  • flash接收网页传递参数的方法

    千次阅读 2012-02-05 19:37:35
    那怎么在flash cs 3.0中接收这些参数呢?简单的例子。 我们一般向网页swf文件传入参数有两种方式,一种是URL如 test.swf?page=5..... 一种是通过网页flashvars传入。 对于AS3是通过parameters对象来管理这些...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,391
精华内容 25,756
关键字:

flask接受文件