Foros del Web » Creando para Internet » Flash y Actionscript »

problema con rutas de upload.php y flash

Estas en el tema de problema con rutas de upload.php y flash en el foro de Flash y Actionscript en Foros del Web. Hola a todos, actualmente tengo un index.html que carga un SWF que está en una carpeta donde tengo varios SWF's. Estoy haciendo una web para ...
  #1 (permalink)  
Antiguo 10/09/2007, 12:54
 
Fecha de Ingreso: julio-2005
Mensajes: 275
Antigüedad: 18 años, 8 meses
Puntos: 3
problema con rutas de upload.php y flash

Hola a todos, actualmente tengo un index.html que carga un SWF que está en una carpeta donde tengo varios SWF's.

Estoy haciendo una web para subir archivos, y el upload.php pues lo tengo en el mismo nivel que el index.html, ya que es ahi donde se carga el flash finalmente, y de hecho tengo otros archivos en ese nivel que son leidos desde el flash importado sin problemas.

Pues si no tengo el upload.php en la carpeta dnd esta el flash, no lo encuentra...

No se supone que las rutas de las cosas son relativas al lugar donde se carga el flash finalmente??

gracias y un saludo!
  #2 (permalink)  
Antiguo 10/09/2007, 13:08
Avatar de Solid  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 180
Antigüedad: 21 años, 2 meses
Puntos: 0
Re: problema con rutas de upload.php y flash

Si no activas a true el parámetro para lockeo de rutas entonces si, las rutas son relativas al objeto/script/whatever que realice el embed del SWF...

Estructura de ejemplo:

index.html
movie.swf
carpeta_1/upload.php

Si index.html embedeara a movie.swf, entonces la referencia a upload.php es carpeta_1/upload.php

Otra estructura...

index.html
swfs/movie.swf
carpeta_1/upload.php

En este caso, el acceso a upload.php sigue siendo carpeta_1/upload.php (NO ../carpeta_1/upload.php) porque las rutas son relativas a quien embedea el SWF (en este caso, index.html)

y así sucesivamente...

En conclusión, respetando tu ejemplo y asumiendo que el nivel en el que decís tener el index.html es el nivel 0 de todo el asunto, entonces si empezás a subir niveles a tu upload.php desde el SWF deberías accederlo "derecho", es decir sin ninguna bajada de nivel tipo "../", directamente nombre_carpeta/nombre_carpeta.....(y así hasta donde corresponda)/upload.php
__________________
Just because I rock doesn't mean I'm stone
  #3 (permalink)  
Antiguo 10/09/2007, 13:32
 
Fecha de Ingreso: julio-2005
Mensajes: 275
Antigüedad: 18 años, 8 meses
Puntos: 3
Re: problema con rutas de upload.php y flash

Eso creia yo, que las rutas a otros archivos se hacen a partir del HTML donde inserto el flash. Hasta ahora siempre lo he hecho asi y me ha funcionado.

Pero nose porque en este caso, solo me funciona si coloco el PHP en el mismo nivel que el SWF que está en otra carpeta diferente.

Que parametro es ese que me comentas para las rutas? Aunque en el mismo flash tengo otras rutas a otros archivos y el funcionamiento es el que te he comentado antes.

un saludo y gracias por la respuesta!
  #4 (permalink)  
Antiguo 10/09/2007, 18:49
Avatar de Solid  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 180
Antigüedad: 21 años, 2 meses
Puntos: 0
Re: problema con rutas de upload.php y flash

vamos al revez...podrías mostrar el código que querés hacer funcionar ?
__________________
Just because I rock doesn't mean I'm stone
  #5 (permalink)  
Antiguo 11/09/2007, 01:19
 
Fecha de Ingreso: julio-2005
Mensajes: 275
Antigüedad: 18 años, 8 meses
Puntos: 3
Re: problema con rutas de upload.php y flash

Este es el codigo Actionscript:

Código:
//importamos las clases necesarias:
import flash.net.FileReferenceList;
import flash.net.FileReference;
//Definimos los archivos permitidos, que es un array con un objeto dentro:
_root.imagen._visible = false;
var allTypes:Array = new Array();
imageTypes.description = "Images (*.jpg;*.jpeg;*.gif;*.png;)";
var imageTypes:Object = new Object();
//"description" declara lo que saldra en el dialogo de eleccion de archivos:
imageTypes.description = "Imagenes (*.jpg;*.gif;*.png;)";
//la propiedad "extension" declara los archivos permitidos (en este caso solo jpgs, gifs y pngs):
imageTypes.extension = "*.jpg;*.gif;*.png;";
allTypes.push(imageTypes);
//Creamos un listener que se llamara cuando los archivos sean seleccionados,
//que a su vez enviara los archivos elegidos a una funcion para que hagamos algo con ellos:
var listListener:Object = new Object();
listListener.onSelect = function(fileRefList) {
	crearArchivos(fileRefList.fileList);
};
//y finalmente creamos la instancia de FileReferenceList:
var fileRef:FileReferenceList = new FileReferenceList();
//le aplicamos el listener:
fileRef.addListener(listListener);
//y declaramos que btnExaminar (un boton que tenemos en el escenario) llame al dialogo de eleccion de archivos, 
//con las restricciones de "allTypes":
btnExaminar.onRelease = function() {
	fileRef.browse(allTypes);
};
function crearArchivos(files) {
	//por si ya hemos subido algo (esto lo entenderan al final):
	//borramos todos los mclips creados anteriormente
	for (var i in arrRef) {
		arrRef[i].removeMovieClip();
	}
	//y borramos las variables globales
	delete puntero;
	delete arrRef;
	//deshabilitamos el boton examinar.
	btnExaminar.enabled = false;
	//posicion en Y inicial para los archivos.
	var posY = 20;
	// creamos un array global que contendra todos los MCs que referencian a los archivos.
	_global.arrRef = new Array();
	// por cada archivo seleccionado:
	for (var i = 0; i<files.length; i++) {
		//creamos un clip con un texto
		//el texto mostrara el tamaño y el nombre de cada archivo
		c.nombre.text = "»NOMBRE: "+files[i].name;
		c.peso.text = "»PESO: "+Math.ceil(files[i].size/1000)+" Kb";
		//creamos una variable dentro del mclip que referencia al archivo de FileReference
		c.file = files[i];
		//y metemos el clip en el array global
		arrRef.push(c);
	}
	//y finalmente comenzamos subiendo el primer archivo:
	// declaramos una variable global que indicara en que archivo vamos (ahora vamos en el primero):
	_global.puntero = 0;
	// asociamos un listener al archivo **** lo explicare a continuacion.
	arrRef[puntero].file.addListener(fileListener);
	// y comenzamos la descarga
	arrRef[puntero].file.upload("upload.php");
}
//creamos el objeto listener
var fileListener:Object = new Object();
//cuando se abre el archivo, y se hace la peticion al servidor para comenzar la subida
fileListener.onOpen = function(file) {
	//aprovechamos para crear un textfield que mostrara el progreso.
	_root.pleasewait.play();
	_root.pleasewait.progreso.text = "comenzando...";
};
//cada vez que se suba un pedazo de archivo:
fileListener.onProgress = function(file, bytesLoaded, bytesTotal) {
	//mostramos el porcentaje de progreso
	var porcentaje = Math.round(bytesLoaded*100/bytesTotal);
	_root.pleasewait.progreso.text = porcentaje+"%";
};
//cuando el archivo haya completado la subida satisfacotiramente
fileListener.onComplete = function(file):Void  {
	//mostramos que el archivo se subio bien
	_root.pleasewait.progreso.text = "Listo!";
	c.ok.text = "LISTO!";
	_root.imagen._visible = false;
	c.muestra.text = _root._url.substring(0, _root._url.lastIndexOf("/")+1)+"imagen/"+file.name;
	_root.pleasewait.gotoAndPlay("listo");
	//y vamos a por el siguiente (ver la funcion mas abajo)
	subirSiguiente();
};
//con cualquier error:
fileListener.onHTTPError = fileListener.onIOError=fileListener.onSecurityError=function (file, error) {
	//mostramos que ha habido un error
	_root.pleasewait.gotoAndPlay("carga");
	_root.pleasewait.progreso.text = "error: "+error;

	//y vamos a por el siguiente (ver la funcion mas abajo)
	subirSiguiente();
};
function subirSiguiente() {
	//si el puntero es menor que la cantidad de archivos
	if (puntero<arrRef.length-1) {
		//aumentamos el puntero en uno
		puntero++;
		//y subimos el siguiente archivo
		arrRef[puntero].file.addListener(fileListener);
		arrRef[puntero].file.upload("upload.php");
	} else {
		//sino, volvemos a habilitar el boton examinar,
		//para permitir seguir subiendo archivos
		btnExaminar.enabled = true;
	}
}

y este el php:

Código:
<?php
//carpeta donde guardaremos el archivo
//ruta completa del archivo que guardaremos
if(!is_dir("./imagen")) mkdir("./imagen", 0755); 
//move the uploaded file
$nombre="./imagen/".basename($_FILES['Filedata']['name']);
//si el archivo se guarda satisfactoriamente
if ( @move_uploaded_file( $_FILES['Filedata']['tmp_name'] , $nombre)) {
	chmod("./imagen/".$_FILES['Filedata']['name'], 0777);
	//enviamos a flash un mensaje de que este archivo existe
	header('HTTP/1.1 200 OK');
}else{
	//sino, le decimos a flash que este archivo (upload.php) no existe,
	//asi flash gatillara el evento onHTTPError
	header('HTTP/1.1 404 Not Found');
}
?>
como puedes ver, le digo al flash que el upload.php esta en el mismo nivel que el html. Pero no lo carga sino lo pongo en el mismo directorio que el swf.
  #6 (permalink)  
Antiguo 11/09/2007, 06:49
Avatar de Solid  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 180
Antigüedad: 21 años, 2 meses
Puntos: 0
Re: problema con rutas de upload.php y flash

Si lo probas local tampoco funciona ?
Es decir, lo más probable es que estés teniendo problemas con el sandbox, o algo así como la estructura de segurida de Flash (por ponerlo sencillo).

Otra cosa, asumo que esto lo estás probando montado sobre un server Apacha o IIS (o lo que fuera) local, y no que tenés una carpeta cualquiera con archivos donde tenés tu PHP y demás...

Pero fuera de eso mucho más no te puedo ayudar, todavía no me pude meter de lleno en AS3 asique si es algo muy puntual de esta nueva versión del lenguaje, no tengo ni idea...
__________________
Just because I rock doesn't mean I'm stone
  #7 (permalink)  
Antiguo 11/09/2007, 07:18
 
Fecha de Ingreso: julio-2005
Mensajes: 275
Antigüedad: 18 años, 8 meses
Puntos: 3
Re: problema con rutas de upload.php y flash

Lo he probado en local y en internet, con sevidor apache. Y ocurre lo mismo.

En teoria esto es AS2 porque lo estoy haciendo con Flash 8.

gracias de todos modos.
  #8 (permalink)  
Antiguo 25/01/2009, 12:26
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problema con rutas de upload.php y flash

Hola, estoy haciendo una web en Flash CS3 con AS3, en la que tengo un formulario que he hecho en el archivo .swf , utilizando también un archivo php para el envío del mismo por correo.
El formulario me funciona perfectamente, pero no sé como insertarle un botón examinar para enviar archivos al correo de la web.
También necesito un botón para imprimir el formulario (también en AS3, por supuesto) y validar el formulario para que no haya errores.

¿Alguien me puede echar un cable? Muchas gracias.
  #9 (permalink)  
Antiguo 26/01/2009, 05:17
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 16 años
Puntos: 22
Respuesta: problema con rutas de upload.php y flash

Hola,
Segun mi experiencia, la relatividad en FLASH con respecto a archivos que se cargan con "loadMovie", "loadVars", etc, son relativos al archivo HTML donde está incrustado el SWF principal. En cambio, para FILEREFERENCE, la relatividad es desde el archivo SWF principal.
Esto quiere decir que si el archivo SWF principal está (por ejemplo) en una carpeta llamada "images" y quieres cargar un PHP ubicado en una carpeta llamada "phps" tienes que poner:

arrRef[puntero].file.upload("../phps/upload.php");

Saludos
__________________
Compartir es vivir
www.programador-php.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:02.