UrlRequest请求时会缓存会话,也就是说当URL路径不改变,但指定的文件已经进行内容修改,客户端请求的结果还是最先访问产生的会话缓存,如何解决这个问题呢?
可以想到的是每次URL路径发生改变,Get方式时后面添加参数,Post方式提交不断变换的参数进而产生URL每次不同的效果,其实两种方式就是改变参数的不同。
Get:http://****/file/test.txt?random=唯一值
Post:
var variables:URLVariables = new URLVariables(); variables.rannum = Math.random(); var url:String = 文件地址 var request:URLRequest = new URLRequest(encodeURL(uri)); request.data = variables; request.method = URLRequestMethod.POST;
另附完整代码
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import mx.utils.UIDUtil; [Bindable] public var file:FileReference; private var currentAction:String; private var downloadURL:URLRequest; private function download():void{ var url:URLRequest=new URLRequest("http://localhost:8080/FlexMessageServer/test.txt"); url.method = URLRequestMethod.POST; url.data = UIDUtil.createUID(); file = new FileReference(); file.addEventListener(Event.COMPLETE,comple) file.download(url) } private function comple(e:Event):void { tex.text="已下载完成!" } ]]> </mx:Script> <mx:Button x="10" y="20" label="下载一个文件" click="download()"/> <mx:ProgressBar x="10" y="100" id="progress" source="{file}" label="已加载: %3%%"/> <mx:Text text="" x="10" y="145" id="tex"/> </mx:Application>
相关推荐
在文件上传过程中,我们可以将FileReference对象的data属性绑定到HTTPService的requestContent,然后调用send方法发起POST请求,将文件数据发送到服务器。 3. **MD5验证**:MD5(Message-Digest Algorithm 5)是一...
- **自定义Request Header限制**:使用`FileReference.upload`时,无法向`URLRequest`对象添加自定义的请求头信息。这一点与`URLLoader`不同,后者允许添加自定义头部信息,但对某些敏感字段(如refer、cookie、host...
### Flex与.NET互操作:使用FileReference+HttpHandler实现文件上传/下载 #### 一、引言 在Flex的应用开发中,与ASP.NET、JSP、PHP等Web应用一样,经常会遇到需要处理文件上传和下载的需求。Adobe Flex是一种用于...
9. **错误处理**:Flex和Java之间可能会出现网络问题、文件过大等问题,因此需要在两端都进行错误处理。Flex端可以通过FileReference的securityError、ioError等事件,Java端通过try-catch语句捕获异常。 在提供的...
2. **FileReference对象**:在Flex中,FileReference对象允许用户选择本地文件,并提供了读取文件内容、显示对话框选择文件以及上传文件到服务器的方法。 3. **事件监听**:FileReference对象支持多个事件,如...
在Flex上传文件的场景中,我们需要创建一个自定义的HttpHandler,处理POST请求,并接收从Flex客户端传来的文件数据。接收到文件后,可以将其保存到服务器的指定位置。 下载部分则相对简单,通常由Flex客户端发起...
Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载 一文的源码的完整工程文件,包含FLEX客户端和 ASP.NET服务端源码! 在VS2010和FLash builder4 中运行!
2. **开始下载**:调用FileReference的load()方法,传入包含文件URL的URLRequest对象。load()方法会发起一个HTTP请求并开始下载。 3. **监听事件**:在下载过程中,我们同样需要监听ProgressEvent.PROGRESS事件来...
1. Flex组件:Flex中可以使用`FileReference`组件来实现文件上传。用户通过选择文件后,`FileReference`会将文件内容读取到内存中,然后通过HTTP请求发送到服务器。 2. 事件处理:在`FileReference`上监听`select`...
在Flex中,我们可以使用`FileReference`类来处理文件选择和上传。`FileReference`允许用户从本地文件系统中选择一个或多个文件。在用户选择文件后,我们可以监听`select`事件来获取选中的文件列表。 ```...
如果遇到问题,可以借助Flex的调试工具,如Flash Builder的调试器,查看运行时的变量状态和网络请求详情,以定位和解决问题。同时,对于Java后端,可能需要使用像Eclipse这样的开发环境,结合日志记录和单元测试来...
param.ItemDate = (this.parameters.ItemDate == undefined || this.parameters.ItemDate == "") ? 31457280 : this.parameters.ItemDate;//ItemDate单文件大小限制,-1表示不限制,默认值为30M ...
为了实现多文件上传,Flex客户端需要使用循环或数组来处理多个FileReference对象。每个FileReference对象都绑定一个上传事件监听器,当用户选择并提交文件时,这些监听器会被触发,依次执行上传操作。在PHP端,也...
在 Flex 中,文件上传主要通过 `FileReference` 类实现。以下是一段示例代码: ```xml <![CDATA[ import mx.controls.Alert; import flash.net.FileReference; // ... private var fileRefer:...
综上所述,Flex中检测文件大小的方法主要包括利用FileReference对象获取本地文件大小,通过HTTP HEAD请求获取远程文件大小,以及在解析XML或AMF数据时计算文件大小。在实际应用中,应根据具体需求选择合适的方法,并...
在Flex中,可以使用`navigateToURL()`函数配合`URLRequest`对象来发起一个下载请求。对于中文文件名的处理,需要在URL中正确编码中文字符,一般使用`encodeURIComponent()`函数进行编码,服务器接收到请求后解码并...
在选择文件后,FileReference对象可以调用upload()方法,将文件作为POST请求的一部分发送到服务器。 对于Java后端,通常会使用Servlet来接收文件。当Flex应用发起POST请求时,Servlet的doPost()方法会被调用。在这...
而到了Flex 2及后续版本,这一过程得到了简化,`FileReference`类被整合进了Flex类库中,使得开发人员可以直接调用该类的相关方法。 #### 二、技术准备 在Flex中,文件的上传与下载主要依赖于`flash.net....
在Flex中,附件的上传通常使用`FileReference`类。`FileReference`是ActionScript 3.0中的一个核心类,允许用户选择本地文件,并执行读取、写入和上传操作。在文件上传过程中,我们首先需要在用户界面上添加一个按钮...