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:
- SELECT
- OPEN
- PROGRESS
- UPLOAD_COMPLETE_DATA
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:
-
import flash.events.DataEvent;
-
import flash.net.FileReference;
-
var fr:FileReference = new FileReference();
-
fr.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, callbackFunction);
-
( ... )
-
fr.upload(new URLRequest("upload.php"));// upload.php DEBE DEVOLVER ALGÚN MENSAJE
-
function callbackFunction ( e:DataEvent ):void
-
{
-
trace( e.data );
-
}
[ via http://bcdef.org ]
Comments
16 Responses to “Respuesta del servidor al subir archivos: FileReference.uploadCompleteData”
Leave a Reply












Interesante update sisi :)
salu2
Emiliano, igual podrías confirmar si el bug de FileReference al subir archivos en MAC se ha solucionado.
Saludos!
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?
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
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
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
Disculpa, pero donde encuentro este archivo en mi servidor apache, para hacerle la modificacion
[...] http://www.joangarnet.com/blog/?p=405 [...]
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
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
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?
DISCULA,ME PUEDES DECIR QUE NECESITO PARA SUBIR UNAS IMAGENES CON MOVIMIENTO A UNA PAGWEB? NO SE NADA DE ESTO PERO QUIEREO APRENDER
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
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!
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!
Gracias! Lo necesitaba.