flex 文件下载 +Tomcat web应用服务器

注意点:

1.FileReference.download() 方法提示用户提供文件的保存位置并开始从远程 URL 进行下载。直接加载请求路径下载,不需要后台的支持。

2.针对文件中文名的问题,需要双方设置编码:

  首先flex端:   

  var download_request:URLRequest=new URLRequest(encodeURI(StringUtil.trim(url)));
  •  encodeURI(uri:String="undefined"):String
    将字符串编码为有效的 URI(统一资源标识符)。将完整的 URI 转换为一个字符串,其中除属于一小组基本字符的字符外,其他所有字符都以 UTF-8 转义序列进行编码。
  
  然后tomcat端:
    打开 \apache-tomcat-7.0.39\conf\server.xml配置文件,找到下面配置:
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>

    修改或是追加红色部分内容

    然后重启服务。

具体Flex下载端代码如下:

  fileDownLoad.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.utils.StringUtil;
			protected function button1_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				downLoad("http://192.168.191.5:8080/netcanvas_s/","360软件小助手截图20140508200748.png");
			}

			private  var fileRef:FileReference=new FileReference();
			/**
			 * 文件下载
			 * backUrl: 后台服务器地址
			 * pathFileName: 下载的文件路径+文件名
			 * */
			public  function downLoad(backUrl:String,pathFileName:String):void{
				fileRef.addEventListener(Event.COMPLETE,completeHandler );
				fileRef.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler);
				fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler);
				fileRef.addEventListener(IOErrorEvent.IO_ERROR,ioShow);
				var fileNameArr:Array=StringUtil.trim(pathFileName).split(‘/‘);
				var decodeName=fileNameArr[fileNameArr.length-1];                                //截取文件名
				var url:String=backUrl+pathFileName;
				var download_request:URLRequest=new URLRequest(encodeURI(StringUtil.trim(url)));
				fileRef.download(download_request,decodeName);                                        //下载文件并加入默认文件名

			}
			//下载进入处理时间
			private  function progressHandler(event:ProgressEvent):void{
				lbProgress.text = " 已下载 " + (event.bytesLoaded/1024).toFixed(2)+ " K,共 " + (event.bytesTotal/1024).toFixed(2) + " K";
				var proc: uint = event.bytesLoaded / event.bytesTotal * 100;
				progress1.setProgress(proc, 100);
				progress1.label= "当前进度: " + " " + proc + "%";

			}

			//文件下载成功事件
			private  function completeHandler(event:Event):void {
				mx.controls.Alert.show("文件下载成功");
			}
			//I/O错误处理
			private  function ioShow(evt: IOErrorEvent){
				Alert.show(evt.toString(),"IO错误");
			}
			//安全沙箱问题事件
			private  function securityErrorHandler(event:SecurityErrorEvent){
				Alert.show(event.text);
			}

		]]>
	</fx:Script>

	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<s:Button x="289" y="149" label="下载" click="button1_clickHandler(event)"/>
	<mx:ProgressBar x="10" y="40" width="457"   minimum="0" mode="manual" maximum="100" id="progress1" label="当前进度: 0%" styleName="myfont" fontWeight="normal"/>
	<mx:Label x="146" y="98" width="321" id="lbProgress" styleName="myfont" textAlign="right"/>
</s:Application>

  显示效果如图:

flex 文件下载 +Tomcat web应用服务器,布布扣,bubuko.com

时间: 2024-08-10 19:15:53

flex 文件下载 +Tomcat web应用服务器的相关文章

Nagios通过check_http监控一台web应用服务器上多个tomcat服务

如何在nagios监控tomcat,是一个比较简单又复杂的事情,简单是因为如果只监控web应用服务器的一个tomcat服务是否正常运行,那么比较简单:如果要监控tomcat的其他比如连接数比如jvm内存使用率等就比较复杂,google没有适合的监控脚本:如果要监控web应用上面的多个tomcat服务器,而且很多tomcat服务都是跳转式的,那就需要多做很多事情. 一般通常都使用tcp tomcat端口的方式,不过这有一个bug就是tomcat假死的情况下,tcp 端口是OK的,但是tomcat里

Java Drp项目实战——Web应用服务器

引言 Web应用服务器现在很多人都在用,可是到底什么是Web应用服务器呢,它与Web服务器有什么关系,它与应用服务器又是什么关系,它是他们两种中的其中一种,还是简单的两种服务器的组合呢? 要搞明白这个问题,我们得先知道什么是Web服务器以及什么是应用服务器,现在我们就来看下这两个服务器. Web服务器 Web服务器(WebServer)可以解析(handles)HTTP协议.当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),比如送回一个HTML页

tomcat web.xml启动加载类

tomcat web.xml启动加载类 2010-03-30 22:31suitieming | 分类:JAVA相关 | 浏览3870次 我写了一个程序配在tomcat上 想启动tomcat的时候自动运行这个类 怎么配置XML文件类名Test 分享到: 2010-03-31 01:57提问者采纳 答题闯关,过关即送礼!快来参加~ 把你需要启动时自动运行的类做成一个Servlet,然后在web.xml做如下配置:  <servlet>   <servlet-name>StartupL

Nginx+Tomcat web站(Linux) &nbsp; +windows

Nginx+Tomcat web站(Linux) 1.Nginx+Tomcat  Web站 2.JDK+Apache Tomcat (jsp)服务器配置(Windows) OS IP 子网掩码 路由网关 Centos6.6 nginx Eth0:192.168.26.211 255.255.252.0 192.168.25.3 Eth1:192.168.30.3 24 Centos6.6 tomcat Eth0:192.168.30.1 24 Win7 client Eth0:192.168.2

Linux定期清Tomcat web server日志

Linux系统中,Tomcat Web Server服务器如果跑的时间久了,系统就会产生大量的日志. 本文指出一个定期清理Tomcat日志的方法: 1.在/root下编写一个清理tomcat日志的shell脚本,内容如下: more autoclearup_tomcat_logs.sh: #! /bin/bash #clear up tomcat logs for centos6.6 #created by lutaoxu. #copyright lutaoxu. #2015-02-02 v1.

使用Nginx+CppCMS构建高效Web应用服务器(之三)

使用Nginx+CppCMS构建高效Web应用服务器(之三) --充分利用服务器和客户端计算能力 欢迎测试,攻击:http://www.litelottery.com     网页右上角,选择博彩,演示双色球开奖记录,更多功能,稍后添加. 1:闲言碎语不要讲,Nginx+CppCMS搭建请参见之一. 2:此讲集中说明一个实例:使用Nginx+CppCMS+C/C++和Redis实现高效的后台服务,客户端使用H5的JS转移计算到客户端. 双色球开奖历史号码获取,存储,客户端获取号码列表,Redis

图片服务器和WEB应用服务器相分离的简单方案

只是简单说明一下原理,其它的自己探索吧:) 一.两个域名:www.domain.com和img.domain.com 二.在www域名的服务器中上传文件: up.html <form name="myform" action="save.php?action=ok" method="POST" enctype="multipart/form-data" > <input type="file&quo

OpenResty全功能Web应用服务器,打包了标准的 nginx 核心

OpenResty打包了标准的 nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项. 通过揉和众多设计良好的 nginx 模块,OpenResty 有效地把 nginx 服务器转变为一个强大的 Web 应用服务器,基于它开发人员可以使用 lua 编程语言对 nginx 核心以及现有的各种 nginx C 模块进行脚本编程,构建出可以处理一万以上并发请求 OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大

Tomcat web.xml配置参数详解

Apache Tomcat Configuration Reference - The Context Containerhttps://tomcat.apache.org/tomcat-5.5-doc/config/context.html tomcat web.xml 配置详解 - titan_max的专栏 - CSDN博客https://blog.csdn.net/titan_max/article/details/52462447 java - Deploy tomcat webapp