Flex

Flex教學-簡易版的檔案上傳(php&cfm)

梅干 2009/01/10

  這一個範例是由好友山羊所提供,而他寫了好幾個版本,目前梅干桑還在整理中,在整理的同時,先分享一篇簡易的檔案上傳方法, 由於山羊是搭配cfm,但一時之間突然找不到那隻程式,所以改由php來作介紹, 其實並不是直接利用Flex就可完成上傳的動作,這中間還需要搭配Server端的程式,如:cfmphpaspaspx…等, Flex只是將資料透過POST的方式丟出來,之後上傳的動作還是要靠Server端的程式來完成,由於該範例擁有上傳的功能,因此就沒提供線上範例供各位試用。


範例操作預覽:

FileUpload4Flex.mxml

<?xml version=“1.0” encoding=“utf-8”?>

mx:Script
<![CDATA[ import mx.utils.XMLUtil; import mx.utils.ObjectProxy; import mx.collections.XMLListCollection; import mx.controls.Alert; import mx.rpc.events.AbstractEvent; private var file:FileReference = new FileReference();

private function uploadHandler():void{   this.FileBrowser.browse(); } //送出檔案 private function SendFile(event:Event):void{   var url:URLRequest = new URLRequest(“http://127.0.0.1/savefile.php");   event.target.upload(url,“Filedata”);//Filedata要與接收的.php或.aspx或.cmf中的名稱相同 } //上傳的進度表 private function UpLoadProgess(event:ProgressEvent):void{   this.progessbar.setProgress((event.bytesLoaded/event.bytesTotal)*100,100); } //當檔案上傳成功 private function UpLoadAccess():void{   Alert.show(“檔案上傳成功”); } //上傳失敗 private function UpLoadErr(event:IOErrorEvent):void{   Alert.show(“上傳失敗”,“IOError”); } ]]>
/mx:Script





/mx:VBox
/mx:Panel
/mx:Application


savefile.php

<?php $uploaddir = ‘tmp/’; $uploadfile = $uploaddir . basename($_FILES[‘Filedata’][‘name’]); $temploadfile = $_FILES[‘Filedata’][‘tmp_name’]; move_uploaded_file($temploadfile , $uploadfile); ?>

savefile.cfm



[範例下載]