其实这样的上传源代码在网上已经是很多了。但是考到本地总是不成功。本人好不容易将这个工程实现了。心情一大畅快!
首先我们看一下客户端。客户端是很简单的主要用到了FileReference
客户端代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init();" >
<mx:Script>
<![CDATA[
import flash.net.FileReference;
import mx.controls.Alert;
import mx.events.CloseEvent;
import flash.events.*;
private var file : FileReference;
private var uploadURL : URLRequest;
private function init() : void{
Security.allowDomain("*");
file = new FileReference();
file.addEventListener(ProgressEvent.PROGRESS, onProgress);
file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,onUPLOAD_COMPLETE_DATA);
file.addEventListener(Event.SELECT, onSelect);
uploadURL = new URLRequest();
uploadURL.url = "http://localhost:9090/New/php/NewUPLoader.php";
}
private function upload() : void{
var imageTypes:FileFilter = new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg; *.jpeg; *.gif; *.png");
var allTypes:Array = new Array(imageTypes);
file.browse(allTypes);
}
private function onSelect(e : Event) : void{
Alert.show("上传 " + file.name + " (共 "+Math.round(file.size)+" 字节)?", "确认上传",Alert.YES|Alert.NO,null,proceedWithUpload);
}
private function onProgress(e:ProgressEvent) : void{
lbProgress.text = " 已上传 " + e.bytesLoaded + " 字节,共 " + e.bytesTotal + " 字节";
}
private function proceedWithUpload(e : CloseEvent) : void{
if (e.detail == Alert.YES){
file.upload(uploadURL);
}
}
private function onUPLOAD_COMPLETE_DATA(evt:DataEvent):void
{
Alert.show(evt.data.toString());
}
]]>
</mx:Script>
<mx:Canvas width="100%" height="100%">
<mx:VBox width="100%" horizontalAlign="center">
</mx:VBox>
<mx:Button label="上传文件" click="upload();" y="91"/>
<mx:Label id="lbProgress" text="上传" x="87.5" y="26"/>
</mx:Canvas>
</mx:Application>
其中要注意的一点是uploadURL.url = "http://localhost:9090/New/php/NewUPLoader.php";
这里面我们要注意。因为我的服务器按在了本机上所以我的访问地址是localhost。服务器默认的端口号是8080.但是我将她的端口改为了9090.这个需要在apach/conf/httpd.conf中使用listen 的值改为9090即可!
然后New是我的服务器工程名。php/NewUPLoader.php是我在New工程下的应用程序路径。
然后 我们看看服务器端的代码:
<?php
// Flash 上传文件的信息默认的名称是Ϊ Filedata
当然这个 可以改变,只要在上传的时候使用fileRerence.upLoad(uriRequest,'你想要的上传标识名称');
$fileName = $_FILES["Filedata"]["name"];
$file = $_FILES["Filedata"]["tmp_name"];
$path = "uploadFiles/";
if (move_uploaded_file($file, $path . $fileName)){
echo 1;
}else{
echo 0;
}
服务器成功发来1,这个时候客户端由于监听了dataEvent事件就可以将event.data输出。如果是1那么就上传成功。如果不是就失败!
还有一点每次修改应用程序的代码,服务器都要重启。有时要有点耐心。等带服务器启动完毕在发送请求。
启动是否成功就用http://localhost:9090/index.html来检查。这个成功别的就可以访问!
分享到:
相关推荐
Flex客户端发送的POST请求携带了文件数据,服务器端需要能够接收并处理这些数据。这取决于你使用的服务器端技术,如PHP、ASP.NET、Java等。服务器端代码通常会解析`multipart/form-data`格式的数据,保存文件,并...
- PHP服务器端:处理来自Flex的请求,执行业务逻辑,查询数据库等操作,然后将结果返回给Flex。 2. **Ajax技术** - Ajax(Asynchronous JavaScript and XML)非同步JavaScript和XML,允许在不刷新整个页面的情况...
当Flex客户端选择了文件并触发上传后,会通过HTTP POST请求将文件数据发送到服务器端的PHP脚本。在PHP中,处理这种上传请求的关键是使用`$_FILES`全局数组,它包含了关于上传文件的信息,如文件名、类型、大小以及...
本示例的主题“Flex上传压缩文件到服务器路径并解压存进数据库”涉及到的技术主要包括Flex客户端开发、服务器端处理、文件上传、文件压缩与解压以及数据库操作。下面将详细讲解这些知识点。 1. **Flex**: Flex是...
这通常涉及到PHP、ASP.NET、Java等后端技术,负责接收文件、保存到服务器磁盘或者数据库,并返回确认信息给Flex客户端。 6. **安全与优化**:多文件上传要考虑安全性问题,比如防止上传恶意文件、限制文件类型和...
4. **PHP文件处理**:`upload.php`是一个服务器端脚本,负责接收并处理来自Flex客户端的文件上传请求。它需要处理文件上传的验证(如文件类型、大小限制等),将文件保存到服务器的指定位置,并可能返回一些响应数据...
在Flex中实现文件上传和进度显示,通常涉及到多个技术层面,包括客户端的用户界面设计、服务器端的数据处理以及通信协议的使用。以下是关于这个主题的详细知识点: 1. **Flex组件库**:Flex提供了一套丰富的组件库...
2. `upload.php` - 这是处理文件上传的`PHP`脚本,它接收`Flex`客户端发送的文件,并可能执行验证、存储、缩略图生成或其他业务逻辑。 3. `upload.swf` - 这是`Flex`应用程序的主文件,包含了上传组件的代码和界面。...
综上所述,Flex文件上传下载功能是通过`FileReference`对象、事件监听和与服务器端的交互来实现的。在实际应用中,开发者需要关注用户体验、性能优化以及安全性问题,以提供稳定、高效且安全的文件上传下载功能。
- Web服务:文件"www.pudn.com.txt"可能包含有关如何通过HTTP或HTTPS接口在Flex客户端和PHP服务器之间交换数据的信息。可能是使用SOAP或RESTful服务,它们是Web服务的两种常见类型。 2. **RESTful服务与数据库...
综上所述,Flex文件上传涉及到客户端与服务器端的交互,包括选择文件、发起HTTP请求、处理服务器响应等步骤。虽然早期存在文件大小限制,但通过分块上传和服务器配置可以解决这一问题。在实际应用中,还需注意安全性...
3. PHP服务器端处理:接收文件,进行验证,存储文件,并返回响应。 4. 安全措施:包括文件类型检查、大小限制、权限控制等。 5. 用户体验优化:如多文件上传、进度条、预览功能等。 这个“flex 图片上传组件 php...
Flex4 是Adobe Flex框架的一个版本,它主要使用ActionScript 3.0编程语言,MXML标记语言以及Flex Builder...完成这些步骤后,你将拥有一个能够正常工作的文件上传功能,用户可以通过Flex界面上传文件到PHP服务器。
Flex是Adobe公司开发的一种富...总的来说,Flex的多文件上传涉及到客户端的用户交互、文件选择、文件上传以及服务器端的文件接收和存储。理解并熟练掌握这一过程,对于构建高效且用户友好的Flex应用程序至关重要。
Flex和PHP结合实现批量上传文件是一项常见的Web开发任务,它涉及到客户端与服务器端的交互以及文件上传进度的实时反馈。本教程将详细讲解如何利用Flex作为前端界面,PHP作为后端处理,创建一个支持批量上传并能刷新...
在本项目中,"flex上传"指的是利用Flex技术实现文件上传功能,而"包含服务端"则意味着这个项目不仅包括客户端的Flex代码,还包含了服务器端处理文件上传的逻辑。 1. **Flex客户端**:Flex客户端通常由ActionScript...
总结来说,将Flex页面数据导出到Excel涉及到客户端与服务器端的交互,服务器端生成Excel文件,以及客户端的下载触发。虽然Flex本身并不直接支持Excel生成,但结合其他技术和库,我们可以提供一个完整的解决方案,...
在服务器端,你可以使用各种编程语言(如Java、PHP、ASP.NET等)来处理请求并返回客户端IP。以下是一个简单的PHP示例: ```php <?php header('Content-Type: application/x-www-form-urlencoded'); echo "ip=...
AMFPHP(Action Message Format for PHP)是一种高效的数据交换协议,它允许Flex(一种用于构建富互联网应用程序的框架)与服务器端的PHP进行快速、低级别的数据通信。 描述中的"liaison entre le php et flex"法语...
Flex AMFPHP 1.9 是一款用于连接Adobe Flex与PHP服务器端的开源框架,它提供了高效的二进制数据交换格式AMF(Action Message Format),从而实现Flash客户端与PHP服务端之间的快速通信。AMF是一种低级的数据表示格式...