
Etiquetas: FileFilter FileReference URLRequest browse upload
//Clases necesariasimport flash.events.*;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.net.URLRequest;
//Dirección del PHP que va a subir el archivovar uploadURL:URLRequest;var archivo:FileReference;//Función llamada al pulsar examinar, se crea el filereference y se abre el navegador de archivosfunction Examinar(event:MouseEvent) {
Estado_txt.appendText("\n" + "Vamos a seleccionar el archivo.");
uploadURL = new URLRequest();
uploadURL.url = "uploadFile.php";
archivo = new FileReference();
PonerListeners(archivo);
archivo.browse(getTypes());
}//Añado los listener al objeto filereferencefunction PonerListeners(dispatcher:IEventDispatcher) {
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(Event.SELECT, selectHandler);
dispatcher.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler);
}//Con está función se generan los tipos de archivos que estarán disponibles para seleccionar desde el navegadorfunction getTypes():Array {
var allTypes:Array = new Array(getImageTypeFilter(), getTextTypeFilter());
return allTypes;}//Tipos de imágenes admitidos, tanto para pc como para macfunction getImageTypeFilter():FileFilter {
return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)","*.jpg;*.jpeg;*.gif;*.png");
}//Tipos de archivos de texto admitidos, para pc y macfunction getTextTypeFilter():FileFilter {
return new FileFilter("Text Files (*.txt, *.rtf)","*.txt;*.rtf");
}//Se distribuye cuando se cancela la descarga desde el navegador de archivos. function cancelHandler(event:Event):void {
Estado_txt.appendText("\n" + "Subida cancelada.");
}//Se distribuye cuando se finaliza la descarga o la cargafunction completeHandler(event:Event):void {
Estado_txt.appendText("\n" + "Subida completada.");
}//Se reciben datos del servidor tras completar la cargafunction uploadCompleteDataHandler(event:Event):void {
Estado_txt.appendText("\n" + "Subida confirmada por el servidor.");
}//Se produce cuando falla la carga y hay un código http de error. //Por ejemplo si no se encuentra el PHP, se generará un error 404.function httpStatusHandler(event:HTTPStatusEvent):void {
Estado_txt.appendText("\n" + "Se ha producido el siguiente error: " + event.status);
}//Se produce cuando falla la carga o descargafunction ioErrorHandler(event:IOErrorEvent):void {
Estado_txt.appendText("\n" + event.text);
}//Se inicia la carga o descargafunction openHandler(event:Event):void {
Estado_txt.appendText("\nComienza la subida");
}//Se distribuye periodicamente durante la carga o la descarga, mostrando el progreso de la misma. function progressHandler(event:ProgressEvent):void {
var file:FileReference = FileReference(event.target);
Estado_txt.appendText("\n" + event.bytesLoaded + " bytes de " + event.bytesTotal + " bytes subidos.");
}//Se distribuye al intentar descargar o cargar un archivo de un servidor fuera del entorno de seguridad de la películafunction securityErrorHandler(event:SecurityErrorEvent):void {
Estado_txt.appendText("\nEl servidor no permitió la carga del archivo.");
}//Se distribuye al elegir el archivo para carga o descarga desde el navegador de archivos.function selectHandler(event:Event):void {
Estado_txt.text = "";
var archivo:FileReference = FileReference(event.target);
Estado_txt.appendText("\n" + "Archivo elegido: " + archivo.name + "\n" + "Tamaño = " + archivo.size + " bytes.");
if(archivo.size > 20000){
Estado_txt.appendText("\nNo se pueden subir archivos de más de 20 KB.");
}else{
archivo.upload(uploadURL);
}}Examinar_bt.addEventListener(MouseEvent.CLICK,Examinar);
Hola Jovix
Lo suyo es que hagas una función "ponerTexto" en la que centralices los mensajes, y en esa función hacer los apaños necesarios para que el texto se mueva como quieras.
@Make Pixels
La imagen se sube bien aunque tenga caracteres especiales, el "problema" viene luego. Yo te recomiendo que al subir la imagen la renombres en php y luego devuelvas el nueva nombre o id al flash.