Comunidad de diseño web y desarrollo en internet online

problemas con upload y as3

Citar            
MensajeEscrito el 24 Nov 2008 07:50 pm
Hola a todos, este es un famoso código que a lo mejor ya se lo pueden, lo que hacer es subir un archivo al servidor mediante as3 y se lo mando a un archivo llemado upload.php. Es el minsmo´codigo que se encuentra en la ayuda, lo único que he realizado es dividirlo en dos botones uno para examenar y el otro para subir.
Ahora bien cuando le doy clic en el botón subir se me despliega el siguiente mensaje:"El servidor no permitió la carga del archivo".
Es decir se dispara el error SecurityErrorEvent y mando a llamar a la siguiente función:
function securityErrorHandler(event:SecurityErrorEvent):void {
Estado_txt.appendText("\nEl servidor no permitió la carga del archivo.");
}
EL ascript de php está bien, pero alguien me puede hace el favor de indicarme como puedo solventar esto?, no se cual será problema.
Espero sus respuestas,
Saludos


//Clases necesarias
import flash.events.*;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.net.URLRequest;

//Dirección del PHP que va a subir el archivo
var uploadURL:URLRequest;
var archivo:FileReference;

//Función llamada al pulsar examinar, se crea el filereference y se abre el navegador de archivos
function Examinar(event:MouseEvent):void {
Estado_txt.appendText("\n" + "Vamos a seleccionar el archivo.");
uploadURL = new URLRequest();
uploadURL.url = "http://www.midominio/upload.php";
archivo = new FileReference();
PonerListeners(archivo);
archivo.browse();
}

//Añado los listener al objeto filereference cuando se abre el cuadro de diálogo
function PonerListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(Event.SELECT, selectHandler);
}
//Añado los listener al objeto filereference cuando se sube un archivo
function PonerListenersSubir(dispatcher:IEventDispatcher):void {
//var archivo:FileReference = FileReference(event.target);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
if(archivo.size > 52428800){
Estado_txt.appendText("\nNo se pueden subir archivos de más de 50 MB.");
}else{
archivo.upload(uploadURL);
}
}

//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 carga
function completeHandler(event:Event):void {
Estado_txt.appendText("\n Subida completada.");
}

//Se reciben datos del servidor tras completar la carga
function 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 descarga
function ioErrorHandler(event:IOErrorEvent):void {
Estado_txt.appendText("\n" + event.text);
}

//Se inicia la carga o descarga
function openHandler(event:Event):void {
Estado_txt.appendText("\nComienza la subida");
progreso.setProgress(0, 0);
Subir_bt.enabled=false;
}

//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.");
progreso.setProgress(event.bytesLoaded, event.bytesTotal);
}

//Se distribuye al intentar descargar o cargar un archivo de un servidor fuera del entorno de seguridad de la película
function 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 = "";
Estado_txt.text += "* Fichero seleccionado para subir:\n";
Estado_txt.text += "Detalles del fichero...\n";
//tomar el archivo que se le pasa como argumento a la función
var archivo:FileReference = FileReference(event.target);
//imprimir características
Estado_txt.text += "Nombre: " + archivo.name + "\n";
Estado_txt.text += "Tipo: " + archivo.type + "\n";
Estado_txt.text += "Tamaño: " + archivo.size + "\n";
Estado_txt.text += "Creador: " + archivo.creator + "\n";
Estado_txt.text += "Creado: " + archivo.creationDate + "\n";
Estado_txt.text += "Última modificación: " + archivo.modificationDate + "\n\n";
//habiitar botón
Subir_bt.enabled=true;
//limpiar barra de progreso
progreso.setProgress(0,0);
}
//función para subir el.
function Subir(event:Event):void {
PonerListenersSubir(archivo);
}
Subir_bt.enabled=false;
Examinar_bt.addEventListener(MouseEvent.CLICK,Examinar);
Subir_bt.addEventListener(MouseEvent.CLICK,Subir);

Por nharmando

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Nov 2008 08:00 pm
Traza el event.message (no me acuerdo si era message la propiedad, chequea con el manual) para tener el mensaje de error exacto. Si el swf estña en un dominio distinto al que quiere hacer el upload, entonces necesitarás un crossdomain.xml

Y dale formato a tu code

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Nov 2008 08:16 pm
Hola a todos, el código que les he puesto funciona, gracias por sus respuesta

Por nharmando

7 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.