FileReference.download() falla, no descarga el archivo, no hace nada


A diferencia de una aplicación Adobe Air, cuando esta se compila en un archivo Flash (SWF), el método Download() de la clase FileReference despliega la ventana para almacenar el archivo pero este no es descargado, simplemente no ocurre nada.

Adobe sabe de este problema y lo postea acá: http://kb2.adobe.com/cps/363/3637d5c3.html

La solución es sencilla:

El método Download falla sólo cuando la clase FileReference es instanciada dentro de una función local. Para solucionar el problema basta con declararla de manera global. Ejemplos:

De esta forma el método Download no hará nada:

function downloadFile():void {
var fileRef:FileReference = new FileReference(); //FileReference com ámbito local
fileRef.download(new URLRequest(“myFile.txt”), “myFile.txt”);
}

De esta manera el método Download descargará el archivo y lo almacenará en el directorio elegido por el usuario:

private var fileRef:FileReference = new FileReference(); //FileReference com ámbito global
function downloadFile():void {
fileRef.download(new URLRequest(“myFile.txt”), “myFile.txt”);
}

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s