用HTML的方式来上传本机上的东西到服务器上是很简单的,但是用FLEX难吗?其实就比HTML难那么一点.当然在服务器上的PHP程序是一样的.懂PHP的就不用我说.不懂的,就看下面的PHP代码,别忘了放到服务器上.详细的PHP上载教程可以看
这里
by uyang www.uncoo.cn
文件名:uploadFile.php
<?php
$uploaddir = 'uploads/';
$uploadfile = $uploaddir . basename($_FILES['Filedata']['name']);
$temploadfile = $_FILES['Filedata']['tmp_name'];
move_uploaded_file($temploadfile , $uploadfile);
?>
很简单的PHP程序. 下面就是FLEX程序代码: by uyang www.uncoo.cn
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();" backgroundGradientColors="[#ffffff, #c0c0c0]">
<mx:Script>
<![CDATA[
private var urlRequest:URLRequest;
private var fileReferenceList:FileReferenceList;
private var serverSideScript:String = "http://路径/uploadFile.php";
private function init():void {
urlRequest = new URLRequest(serverSideScript);
fileReferenceList = new FileReferenceList();
fileReferenceList.addEventListener(Event.SELECT, fileSelectedHandler);
}
private function uploadFile():void {
fileReferenceList.browse(getTypes());
}
public function getTypes():Array {
var allTypes:Array = new Array();
allTypes.push(getImageTypeFilter());
allTypes.push(getTextTypeFilter());
return allTypes;
}
private function getImageTypeFilter():FileFilter {
return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png");
}
private function getTextTypeFilter():FileFilter {
return new FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf");
}
private function fileSelectedHandler(event:Event):void {
var fileReference:FileReference;
var fileReferenceList:FileReferenceList = FileReferenceList(event.target);
var fileList:Array = fileReferenceList.fileList;
fileReference = FileReference(fileList[0]);
fileReference.addEventListener(Event.COMPLETE, uploadCompleteHandler);
fileReference.upload(urlRequest);
statusText.text = "上传中...";
}
private function uploadCompleteHandler(event:Event):void {
statusText.text = "上传成功的文件: " + event.target.name;
}
]]>
</mx:Script>
<mx:Label text="用FLEX上传文件到PHP服务器" fontSize="14" fontWeight="bold"/>
<mx:Label text="选择要上传的文件" id="statusText" fontSize="12"/>
<mx:Button click="uploadFile();" label="上传" fontSize="12"/>
</mx:Application>
文件名:uploadFile.php
<?php
$uploaddir = 'uploads/';
$uploadfile = $uploaddir . basename($_FILES['Filedata']['name']);
$temploadfile = $_FILES['Filedata']['tmp_name'];
move_uploaded_file($temploadfile , $uploadfile);
?>
很简单的PHP程序. 下面就是FLEX程序代码: by uyang www.uncoo.cn
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();" backgroundGradientColors="[#ffffff, #c0c0c0]">
<mx:Script>
<![CDATA[
private var urlRequest:URLRequest;
private var fileReferenceList:FileReferenceList;
private var serverSideScript:String = "http://路径/uploadFile.php";
private function init():void {
urlRequest = new URLRequest(serverSideScript);
fileReferenceList = new FileReferenceList();
fileReferenceList.addEventListener(Event.SELECT, fileSelectedHandler);
}
private function uploadFile():void {
fileReferenceList.browse(getTypes());
}
public function getTypes():Array {
var allTypes:Array = new Array();
allTypes.push(getImageTypeFilter());
allTypes.push(getTextTypeFilter());
return allTypes;
}
private function getImageTypeFilter():FileFilter {
return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png");
}
private function getTextTypeFilter():FileFilter {
return new FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf");
}
private function fileSelectedHandler(event:Event):void {
var fileReference:FileReference;
var fileReferenceList:FileReferenceList = FileReferenceList(event.target);
var fileList:Array = fileReferenceList.fileList;
fileReference = FileReference(fileList[0]);
fileReference.addEventListener(Event.COMPLETE, uploadCompleteHandler);
fileReference.upload(urlRequest);
statusText.text = "上传中...";
}
private function uploadCompleteHandler(event:Event):void {
statusText.text = "上传成功的文件: " + event.target.name;
}
]]>
</mx:Script>
<mx:Label text="用FLEX上传文件到PHP服务器" fontSize="14" fontWeight="bold"/>
<mx:Label text="选择要上传的文件" id="statusText" fontSize="12"/>
<mx:Button click="uploadFile();" label="上传" fontSize="12"/>
</mx:Application>
这是在ADOBE网站上的一个小教程,我觉得不错,就放自己BLOG上.PHP端我改了下.如果你想要多个上传或者加上上传进度条,也很方便.这里主要是FileReferenceList这个命令.有空多研究研究.