Aqui les dejo un ejemplo de como cargar una fotografia al servidor luego a nuestra aplicacion. aqui directamente los codigos. El resultado sera como como se muestra en la imagen.

UploadFile.mxml
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” xmlns:comps=”comps.*”>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
function uploadedListener(){
trace("Archivo cargado");
}
function selectedListener(){
trace("Archivo seleccionado");
}
]]>
</mx:Script>
<mx:Panel title=”Subir Archivo”>
<comps:BrowseDir dirname=”images/”
uploadURL=”upload.php”
fileUploaded=”uploadedListener();”
fileSelected=”selectedListener();”
/>
</mx:Panel>
</mx:Application>
Creamos en Thumbnail
<?xml version=”1.0″?>
<mx:Canvas xmlns:mx=”http://www.adobe.com/2006/mxml” borderStyle=”none”
>
<mx:Image id=”image” width=”60″ height=”60″ source=”{data.data}”/>
<mx:Label
id=”nombre_txt”
text=”{data.label}”
width=”150″
x=”68″ y=”10″
/>
<mx:Text text=”12585″ x=”156″ y=”10″/>
</mx:Canvas>
Creamos nueva carpeta desde donde llamaremos para buscar el archivos a subir. en este caso le llame a la carpeta “comp”. el siguiente archivo debe ir dentro de ella. archivo BrowseDir.mxml
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Canvas xmlns:mx=”http://www.adobe.com/2006/mxml” creationComplete=”init();” height=”444″ currentState=”base”>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import flash.net.FileReference;
import flash.net.URLRequest;
import flash.net.URLRequestMethod
import mx.events.ItemClickEvent;
import flash.events.Event;
//
[Inspectable(defaultValue="images")]
private var _dirname:String;
//
[Inspectable(defaultValue=false)]
private var _autoUpload:Boolean;
//
[Inspectable(defaultValue=undefined)]
private var _params:Object;
//
[Inspectable(defaultValue="upload.php")]
private var _upload_url:String;
//
var imagesFilter:FileFilter = new FileFilter(“Imagenes”, “*.jpg;*.gif;*.png;*.bmp”);
private var fileref:FileReference = new FileReference();
var imagenSeleccionada:Boolean = false;
private function init(){
fileref.addEventListener(Event.SELECT, selectHandler);
fileref.addEventListener(Event.OPEN, openHandler);
fileref.addEventListener(ProgressEvent.PROGRESS, progressHandler);
fileref.addEventListener(Event.COMPLETE, completeHandler);
subir_btn.enabled = false;
loadDirData();
}
var externalXML:XML;
var loader:URLLoader = new URLLoader();
function loadDirData(){
var request:URLRequest = new URLRequest(“dir2xml.php?dir=”+_dirname+”&rnd=”+Math.random());
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);
}
function onComplete(event:Event) {
loader.removeEventListener(Event.COMPLETE,onComplete);
//var loader:URLLoader = URLLoader(event.target);
externalXML = new XML(loader.data);
var _array:Array = new Array();
var n = 0;
for each (var grupo:XML in externalXML..file){
_array[n] = {label:grupo.toString(),data:”"+_dirname+”"+grupo.toString()};
n++;
}
files_list.dataProvider = _array;
}
public function set dirname(_str:String):void{
_dirname = _str
}
public function set uploadURL(_str:String):void{
_upload_url = _str
}
public function set params(o:Object){
_params = o;
}
public function get fileName():String{
return file_path.text;
}
public function set fileSelected(f:String){
var _array = files_list.dataProvider;
for(var d = 0;d<_array.length;d++){
if(_array[d].label == f){
files_list.selectedIndex = d;
return;
}
}
files_list.selectedIndex = -1;
}
public function get fileSelected():String{
return files_list.selectedItem.label;
}
private function searchFile():void{
fileref.browse([imagesFilter]);
}
public function reset():void{
uploadProgress.setProgress(0,1);
file_path.text = “”;
}
var loader_del:URLLoader = new URLLoader();
function delFile(){
var request:URLRequest = new URLRequest(“delFile.php?file=”+files_list.selectedItem.data);
loader_del.load(request);
loader_del.addEventListener(Event.COMPLETE, onDelete);
}
function onDelete(event:Event){
loadDirData();
}
public function uploadFile():void{
var request:URLRequest = new URLRequest();
var variables:URLVariables = new URLVariables();
variables.dir = _dirname;
for(var d in _params){
variables[d] = _params[d]
}
request.data = variables;
request.method = URLRequestMethod.POST;
request.url = _upload_url;
fileref.upload(request);
}
private function selectHandler(event:Event):void {
dispatchEvent(new Event(“fileSelected”));
subir_btn.enabled = true;
file_path.text = fileref.name;
}
private function openHandler(event:Event):void {
// is opened
}
private function progressHandler(event:ProgressEvent):void {
uploadProgress.setProgress(event.bytesLoaded, event.bytesTotal);
}
private function completeHandler(event:Event):void {
loadDirData()
uploadProgress.label = “Carga completada!”;
dispatchEvent(new Event(“fileUploaded”));
}
private function changeState(){
if(currentState == “upload”)currentState = “base”;
else currentState = “upload”;
}
]]>
</mx:Script>
<mx:Metadata>
[Event(name="fileUploaded", type="flash.events.Event")]
[Event(name="fileSelected", type="flash.events.Event")]
</mx:Metadata>
<mx:states>
<mx:State name=”base”>
<mx:SetProperty target=”{files_list}” name=”height” value=”399″/>
<mx:RemoveChild target=”{uploadForm}”/>
<mx:SetProperty target=”{add_btn}” name=”label” value=”Agregar archivo”/>
</mx:State>
<mx:State name=”upload”>
<mx:SetProperty target=”{files_list}” name=”height” value=”289″/>
<mx:SetProperty target=”{uploadForm}” name=”y” value=”287″/>
<mx:SetProperty target=”{add_btn}” name=”label” value=”Cancelar”/>
<mx:SetProperty target=”{formitem1}” name=”label” value=”Progreso”/>
</mx:State>
</mx:states>
<mx:transitions>
<mx:Transition id=”toUpload” fromState=”base” toState=”upload”>
<mx:Sequence targets=”{[uploadForm, files_list]}”>
<mx:RemoveChildAction/>
<mx:Resize target=”{files_list}”/>
<mx:AddChildAction/>
</mx:Sequence>
</mx:Transition>
<mx:Transition id=”toBase” fromState=”upload” toState=”base”>
<mx:Sequence targets=”{[uploadForm, files_list]}”>
<mx:RemoveChildAction/>
<mx:Resize target=”{files_list}”/>
<mx:AddChildAction/>
</mx:Sequence>
</mx:Transition>
</mx:transitions>
<mx:List id=”files_list” width=”268″ height=”331″ itemRenderer=”Thumbnail”>
</mx:List>
<mx:Form y=”330″ id=”uploadForm”>
<mx:FormItem label=”Subir Archivo:”>
<mx:HBox>
<mx:Button label=”Buscar” click=”searchFile()”/>
<mx:Button label=”Subir” id=”subir_btn” click=”uploadFile();”/>
</mx:HBox>
</mx:FormItem>
<mx:FormItem label=”Archivo”>
<mx:Text id=”file_path” text=”"/>
</mx:FormItem>
<mx:FormItem label=”Progress” id=”formitem1″>
<mx:ProgressBar id=”uploadProgress” label=”" mode=”manual” width=”150″ />
</mx:FormItem>
</mx:Form>
<mx:ControlBar y=”400″>
<mx:Button label=”Agregar” id=”add_btn” click=”changeState();”/>
<mx:Button label=”Borrar” click=”delFile()”/>
</mx:ControlBar>
</mx:Canvas>
A continuación los archivos php para subir estas imagenes, estos archivo pueden poner en el src de tu proyecto o directamente en el bin de tu proyecto.
upload.php
<?
$uploadFile = “images/”.$_FILES['Filedata']['name'];
move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
?>
delFile.php
<?
unlink($file);
echo (“ok”);
?>
Este archivo es para leer todos los archivos que tenemos en la carpeta “images” que tienes que crear en el mismo directorio donde estan tus archivos php
dir2xml.php
<?
echo “<files>”;
if ($gestor = opendir($dir.’/')) {
while (false !== ($archivo = readdir($gestor))) {
if($archivo != “..” && $archivo != “.”)
echo “<file>”.$archivo.”</file>”;
}
closedir($gestor);
}
echo “</files>”;
?>