`
NewTamato
  • 浏览: 103598 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

上传文件 flex客户端php服务器端

阅读更多

其实这样的上传源代码在网上已经是很多了。但是考到本地总是不成功。本人好不容易将这个工程实现了。心情一大畅快!

首先我们看一下客户端。客户端是很简单的主要用到了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来检查。这个成功别的就可以访问!

       

分享到:
评论
1 楼 NewTamato 2009-02-24  
chenjunceo 写道

从这篇文章来看,楼主从事的应该是Flex+PHP的B/S开发?

我是flex java开发,自学一下php,呵呵呵。

相关推荐

    flex实现多文件上传

    Flex客户端发送的POST请求携带了文件数据,服务器端需要能够接收并处理这些数据。这取决于你使用的服务器端技术,如PHP、ASP.NET、Java等。服务器端代码通常会解析`multipart/form-data`格式的数据,保存文件,并...

    flex与PHP数据交互教程

    - PHP服务器端:处理来自Flex的请求,执行业务逻辑,查询数据库等操作,然后将结果返回给Flex。 2. **Ajax技术** - Ajax(Asynchronous JavaScript and XML)非同步JavaScript和XML,允许在不刷新整个页面的情况...

    Flex multiple file uploader (Flex多文件上传范例)

    当Flex客户端选择了文件并触发上传后,会通过HTTP POST请求将文件数据发送到服务器端的PHP脚本。在PHP中,处理这种上传请求的关键是使用`$_FILES`全局数组,它包含了关于上传文件的信息,如文件名、类型、大小以及...

    Flex上传压缩文件到服务器路径并解压存进数据库

    本示例的主题“Flex上传压缩文件到服务器路径并解压存进数据库”涉及到的技术主要包括Flex客户端开发、服务器端处理、文件上传、文件压缩与解压以及数据库操作。下面将详细讲解这些知识点。 1. **Flex**: Flex是...

    flex 多文件上传

    这通常涉及到PHP、ASP.NET、Java等后端技术,负责接收文件、保存到服务器磁盘或者数据库,并返回确认信息给Flex客户端。 6. **安全与优化**:多文件上传要考虑安全性问题,比如防止上传恶意文件、限制文件类型和...

    Flex文件上传组件

    4. **PHP文件处理**:`upload.php`是一个服务器端脚本,负责接收并处理来自Flex客户端的文件上传请求。它需要处理文件上传的验证(如文件类型、大小限制等),将文件保存到服务器的指定位置,并可能返回一些响应数据...

    Flex 实现文件上传及进度显示

    在Flex中实现文件上传和进度显示,通常涉及到多个技术层面,包括客户端的用户界面设计、服务器端的数据处理以及通信协议的使用。以下是关于这个主题的详细知识点: 1. **Flex组件库**:Flex提供了一套丰富的组件库...

    flex+php上传文件可自定义上传格式,上传文件限制大小

    2. `upload.php` - 这是处理文件上传的`PHP`脚本,它接收`Flex`客户端发送的文件,并可能执行验证、存储、缩略图生成或其他业务逻辑。 3. `upload.swf` - 这是`Flex`应用程序的主文件,包含了上传组件的代码和界面。...

    flex文件上传下载

    综上所述,Flex文件上传下载功能是通过`FileReference`对象、事件监听和与服务器端的交互来实现的。在实际应用中,开发者需要关注用户体验、性能优化以及安全性问题,以提供稳定、高效且安全的文件上传下载功能。

    flex+php.rar_Flex+PHP_PHP Flex_felx p_flex_flex php

    - Web服务:文件"www.pudn.com.txt"可能包含有关如何通过HTTP或HTTPS接口在Flex客户端和PHP服务器之间交换数据的信息。可能是使用SOAP或RESTful服务,它们是Web服务的两种常见类型。 2. **RESTful服务与数据库...

    flex 上传文件代码

    综上所述,Flex文件上传涉及到客户端与服务器端的交互,包括选择文件、发起HTTP请求、处理服务器响应等步骤。虽然早期存在文件大小限制,但通过分块上传和服务器配置可以解决这一问题。在实际应用中,还需注意安全性...

    flex 图片上传组件 php服务

    3. PHP服务器端处理:接收文件,进行验证,存储文件,并返回响应。 4. 安全措施:包括文件类型检查、大小限制、权限控制等。 5. 用户体验优化:如多文件上传、进度条、预览功能等。 这个“flex 图片上传组件 php...

    Flex4 文件上传

    Flex4 是Adobe Flex框架的一个版本,它主要使用ActionScript 3.0编程语言,MXML标记语言以及Flex Builder...完成这些步骤后,你将拥有一个能够正常工作的文件上传功能,用户可以通过Flex界面上传文件到PHP服务器。

    Flex 上传多个文件

    Flex是Adobe公司开发的一种富...总的来说,Flex的多文件上传涉及到客户端的用户交互、文件选择、文件上传以及服务器端的文件接收和存储。理解并熟练掌握这一过程,对于构建高效且用户友好的Flex应用程序至关重要。

    Flex+php 批量上传源码 (可刷新进度条 )

    Flex和PHP结合实现批量上传文件是一项常见的Web开发任务,它涉及到客户端与服务器端的交互以及文件上传进度的实时反馈。本教程将详细讲解如何利用Flex作为前端界面,PHP作为后端处理,创建一个支持批量上传并能刷新...

    flex 上传,包含服务端

    在本项目中,"flex上传"指的是利用Flex技术实现文件上传功能,而"包含服务端"则意味着这个项目不仅包括客户端的Flex代码,还包含了服务器端处理文件上传的逻辑。 1. **Flex客户端**:Flex客户端通常由ActionScript...

    将flex页面数据导出到excel

    总结来说,将Flex页面数据导出到Excel涉及到客户端与服务器端的交互,服务器端生成Excel文件,以及客户端的下载触发。虽然Flex本身并不直接支持Excel生成,但结合其他技术和库,我们可以提供一个完整的解决方案,...

    Flex通过web返回客户端IP

    在服务器端,你可以使用各种编程语言(如Java、PHP、ASP.NET等)来处理请求并返回客户端IP。以下是一个简单的PHP示例: ```php &lt;?php header('Content-Type: application/x-www-form-urlencoded'); echo "ip=...

    amfphp.zip_amfphp_flex_flex php

    AMFPHP(Action Message Format for PHP)是一种高效的数据交换协议,它允许Flex(一种用于构建富互联网应用程序的框架)与服务器端的PHP进行快速、低级别的数据通信。 描述中的"liaison entre le php et flex"法语...

    flex amfphp1.9

    Flex AMFPHP 1.9 是一款用于连接Adobe Flex与PHP服务器端的开源框架,它提供了高效的二进制数据交换格式AMF(Action Message Format),从而实现Flash客户端与PHP服务端之间的快速通信。AMF是一种低级的数据表示格式...

Global site tag (gtag.js) - Google Analytics