Respuesta del servidor al subir archivos: FileReference.uploadCompleteData

En la última versión de Flash Player ( 9.0.28.0 ) la API de FileReference incluye un nuevo evento: uploadCompleteData.
Se trata de un evento que se ejecuta cuando se ha subido por completo el archivo y (solo si) se devuelve un mensaje.
Digamos que el flujo sería el siguiente:

En el caso que no se devuelva un mensaje (opción nada aconsejable) simplemente se ejecutaría el evento COMPLETE y el upload podría o no haberse realizado con éxito.

Actionscript:
  1. import flash.events.DataEvent;
  2. import flash.net.FileReference;
  3. var fr:FileReference = new FileReference();
  4. fr.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, callbackFunction);
  5. ( ... )
  6. fr.upload(new URLRequest("upload.php"));// upload.php DEBE DEVOLVER ALGÚN MENSAJE
  7. function callbackFunction ( e:DataEvent ):void
  8. {
  9.     trace( e.data );
  10. }

[ via http://bcdef.org ]

Comments

16 Responses to “Respuesta del servidor al subir archivos: FileReference.uploadCompleteData”

  1. Emiliano Velasco on January 11th, 2007 11:23

    Interesante update sisi :)

    salu2

  2. Joan Garnet on January 11th, 2007 12:42

    Emiliano, igual podrías confirmar si el bug de FileReference al subir archivos en MAC se ha solucionado.
    Saludos!

  3. Cay on January 20th, 2007 03:53

    Conoces la razon del bug en mac Joan? porque a mi en algunos servidores me funciona, pero en otros no (bajo mac, el mismo swf), y no he podido investigar mucho porque no tengo mac :S

    Sobre el evento este (que vaya que le hacia falta), supongo que sera sólo para AS3, no?

  4. Joan Garnet on January 20th, 2007 21:05

    Hola Cay,
    la solución para el bug en MAC es simplemente devolver un string, por ejemplo un string con un espacio en blanco.
    Con esto bastaría:

    <?php
    move_uploaded_file($_FILES['Filedata']['tmp_name'], "./uploads/".$_FILES['Filedata']['name']);
    echo " ";
    ?>

    Que yo sepa el evento solo está para la AVM2 del player, pero por si acaso no está de más intentar utilizarlo desde la AVM1 compilando para AS2.
    Joan

  5. Logus on January 22nd, 2007 20:21

    Hola
    Hice un pequeño programa para subir archivos similar al que muestran aqui, funciona bien modo local pero cuando lo subo al servidor, no se completa la transferencia, pense que seria un error en PHP o en la carpeta pero usando el mismo script con html funciona bien.
    Pueden descargar todo este script en:
    http://www.derechounsa.com/upload7.zip

  6. Logus on January 22nd, 2007 20:47

    Hola Bueno encontre la solucion al error, algunos servidores esta bloqueado el envio pero se arregla incluyendo un archivo
    .httacces con la siguiente linea:
    SecFilterEngine off

  7. ricardo on April 23rd, 2007 00:24

    Disculpa, pero donde encuentro este archivo en mi servidor apache, para hacerle la modificacion

  8. » Blog Archive » FileReference onComplete no funciona en Mac OS on September 28th, 2007 13:58
  9. vassiliZ on December 1st, 2007 18:33

    Hola, una consulta? si yo quiero capturar los valores q devuelve el UPLOAD_COMPLETE_DATA como haría?

    porque al hacerle trace a la variable recibida me trae:

    uploadCompleteData: [DataEvent type="uploadCompleteData" bubbles=false cancelable=false eventPhase=2 data="Dibujo.JPG"]

    yo intento capturar el data con
    trace(event.data);

    pero sin éxito, sabes como podría hacerlo?

    gracias

  10. vassiliZ on December 1st, 2007 18:45

    lo lamento el error es de la ayuda de Flash que dice:

    private function uploadCompleteDataHandler(event:Event)...

    y debe decir

    private function uploadCompleteDataHandler(event:DataEvent)...

    asi ya puedes acceder a las propiedades, gracias

  11. Alec on January 22nd, 2008 23:24

    Hola!

    Diculpen lairrupcion, pero esoty desesperado, mi jefa necesita subir unas animaciones en flash a su website, pero se tarda demasiado en hacer el upload, quiero decir, ella ya las subió, pero aun no las muestra la página, ya ha tardado mucho con eso y me esta picando a mi para que lo solucione... pero yo no trabajo en Flash :$ ¿me ayudan?

  12. LAURA on June 18th, 2008 23:47

    DISCULA,ME PUEDES DECIR QUE NECESITO PARA SUBIR UNAS IMAGENES CON MOVIMIENTO A UNA PAGWEB? NO SE NADA DE ESTO PERO QUIEREO APRENDER

  13. Esteban on August 27th, 2008 04:27

    Hola,
    Mi pregunta es como el upload.php devuelve la respuesta, solo con un 'echo' y el flash lo lee desde ahi?

    Gracias de antemano, muy interesante articulo.
    Saludos!

    Esteban Ortega,
    Toronto, ON

  14. Esteban on September 11th, 2008 02:22

    Ya lo supe, jeje...
    Solo una respuesta cualquiera. Revise el 'php' de un ejemplo en Flash y dice: echo "Flash necesita una respuesta.";

    Gracias de todas formas,
    Saludos!

  15. Joan Garnet on September 11th, 2008 10:48

    Hola Esteban,
    php requiere que imprimas una cadena de texto por pantalla. Este string puede ser un xml o un querystring con pares de variable=valor.
    Por ej:
    echo "var1=perro&var2=verde";

    Saludos!

  16. Juan on August 28th, 2009 23:34

    Gracias! Lo necesitaba.

Leave a Reply