Mira este codigo. Es una aplicación en flex, que hace eso. nos lo enseño Freddie. Lo que necesitas lo haces con FileReference.
Código :
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="inicio();" layout="absolute" backgroundGradientColors="[#0080ff, #004993]" >
<mx:Script>
<![CDATA[
import flash.net.FileReference;
import flash.events.*;
import mx.events.*;
import mx.managers.CursorManager;
import mx.controls.Alert;
private var ftp:FileReference = new FileReference();
private function inicio():void
{
ftp.addEventListener(Event.SELECT, subamos);
ftp.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, cargaCompleta);
archivos.send();
}
private function abrir(e:MouseEvent):void
{
ftp.browse([new FileFilter("solo Imagenes", "*jpg;*.gif;*.png"), new FileFilter("Lo que sea", "*")]);
}
private function subamos(e:Event):void
{
ftp.upload ( new URLRequest("http://172.16.4.85/taller/subir/subidor.php"));
CursorManager.setBusyCursor();
}
private function cargaCompleta(e:DataEvent):void
{
CursorManager.removeBusyCursor();
Alert.show("Carga Completa");
}
]]>
</mx:Script>
<mx:HTTPService id="archivos" url="http://172.16.4.85/taller/subir/lista.php"/>
<mx:Panel layout="absolute" top="10" width="639" height="426" title="Sistema FTP" cornerRadius="20" horizontalCenter="0">
<mx:DataGrid left="10" top="10" bottom="40" right="10" id="lista" dataProvider="{archivos.lastResult.files.file}">
<mx:columns>
<mx:DataGridColumn headerText="Nombre" dataField="name"/>
<mx:DataGridColumn headerText="Tamaño" dataField="tamanio"/>
</mx:columns>
</mx:DataGrid>
<mx:Button label="Bajar" bottom="10" left="73" id="bajar"/>
<mx:Button label="Subir" bottom="10" left="10" id="subir" click="abrir(event);"/>
<mx:ProgressBar right="10" bottom="10" id="barra" minimum="0" maximum="100"/>
</mx:Panel>
</mx:Application>