Gracias por la respuesta.
He hecho una mezcla entre el tuyo y el que tenia hecho en un principio. Despues, he hecho un fichero .php para subir el archivo, pero sigo sin poder subir las fotos...no se si el fallo está en la ruta que le pongo del servidor, o que guardo en archivo .php en un sitio que no lo encuentra (aparentemente he hecho un metodo para mostrar el archivo si todo va bien y lo abre, señal de que lo ha encontrado bien) :S.
A continuacion os pongo tanto el componente MXML como el archivo .PHP a ver si me podeis echar una mano:
Componente MXML:
<code>
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:fx="
http://ns.adobe.com/mxml/2009"
xmlns:s="library://
ns.adobe.com/flex/spark"
xmlns:mx="library://
ns.adobe.com/flex/mx" width="1280" height="800" name="mensajes"
creationComplete="init()">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.controls.Image;
public var nombreArchivo:String;
//declaramos la variables que nos servirá para subir los archivos
private var fileref:FileReference = new FileReference();
//Declaramos la variable que contendrá las variables que pasaremos por POST al php
private var variables:URLVariables=new URLVariables;
private var Myfilter = new FileFilter("Imagenes (*.jpg; *.jpeg; *.png; *.gif;)","*.jpg; *.jpeg; *.png; *.gif");
// init() la ejecutamos nada mas cargar la pagina y lo que hace es crear lo listener para cada evento de la subida
private function init():void{
startUpload.enabled = false;
fileref.addEventListener(Event.SELECT, seleccionar);
fileref.addEventListener(ProgressEvent.PROGRESS, progressHandler);
fileref.addEventListener(Event.COMPLETE, completeHandler);
//Alert.show(suscripcion.text.toString()+archivoAntiguo.text.toString());
}
//muestra el archivo "subir.php", para saber si lo ha encontrado bien y si todo ha iido bien
private function callbackFunction ( e:DataEvent ):void{
//file_path.text=e.data.toString();
file_path.text="Fotografía subida con éxito";
//campoTexto.text=e.data.toString();
}
private function seleccionar(event:Event):void {
startUpload.enabled = true;
file_path.text =
fileref.name;
}
//aqui vamos indicando en la barra de progreso el porcentaje de subida
private function progressHandler(event:ProgressEvent):void {
uploadProgress.setProgress(event.bytesLoaded, event.bytesTotal);
}
private function completeHandler(event:Event):void {
//en esta ocasión no queremos que haga nada cuando se cargue la foto
}
private function subir():void{
//esta funcion se ejecuta cuando pinchamos en el boton subir y se encarga de mandar el archivo a subir.php que lo colocará en nuestro servidor
var request:URLRequest = new URLRequest();
nombreArchivo=fileref.name.toString();
variables.nombreArchivo=nombreArchivo;
variables.apellidos ='apelidosPrueba';
request.method = URLRequestMethod.POST;
request.url ="subir.php";
request.data=variables;
fileref.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, callbackFunction);
fileref.upload(request);
}
private function buscar():void {
//busca la imagen
fileref.browse([Myfilter]);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Panel id="panelCentral" width="1279" height="686" textAlign="left">
<mx:ProgressBar id="uploadProgress" mode="manual" x="219.2" y="125" width="354"/>
<mx:Text id="file_path" x="309.2" y="97" width="354"/>
<mx:Button styleName="boton" x="36.8" y="60" label="Insertar Fotografía:" width="174.4" click="buscar()"/>
<mx:Button id="startUpload" label="Subir" click="subir()" x="219.2" y="92" styleName="boton" width="82.4"/>
</s:Panel>
</mx:HBox>
</code>
Ahora os pongo el codigo del archivo "subir.php":
<code>
<?php
//si llegan datos y el tamaño de los datos es menor que un mega
if($_FILES['Filedata'] and $_FILES['Filedata']['size']<1000000){
//recogemos las variables que nos lelgan por POST
$nombre=$_POST['nombreArchivo'];
//añadimos time() para que el nombre del archivo sea unico
$apellido=$_POST['apellidos'].time();
//lo colocamos en el directorio
$uploadFile ="C:\xampp\tomcat\webapps\pfc1\pfcFLEX-debug\images".$nombre2;
//subimos el archivo
move_uploaded_file($_FILES['Filedata']['tmp_name'],$uploadFile);
//echo $nombre2;// "Foto almacenada";
}
?>
</code>
Este archivo (subir.php) lo pongo en la carpeta del proyecto (el proyecto se llama pfc1), dentro del servidor en C:\xampp\tomcat\webapps\pfc1\pfcFLEX-debug\, que es donde estan todos los archivos.
Las fotos las quiero guardar en C:\xampp\tomcat\webapps\pfc1\pfcFLEX-debug\images.
Un saludo y gracias por anticipado.