Comunidad de diseño web y desarrollo en internet online

Subir archivo a un servidor FTP en Flash con AS3

Citar            
MensajeEscrito el 11 Mar 2008 03:33 pm
Hola amigos:

Estoy creado una aplicación de escritorio en Flash con as3 desde la cual se pueda enviar un archivo a un servidor FTP. Mis dudas son las siguientes:

¿Puedo hacerlo sólo desde Flash sin necesidad de PHP(subiendo directamente al servidor?

Y en el caso de que sea necesario PHP y corriendo la aplicación en un equipo local:

¿Dónde tengo que poner el archivo .php y como he de configurarlo para que conecte con mi servidor FTP?

Muchas gracias de antemano.

Por Iraultz

8 de clabLevel



 

msie7
Citar            
MensajeEscrito el 11 Mar 2008 08:00 pm
Necesitas algún script que reciba el archivo. No he visto aún tutos de subida en AS3, pero hay pequeños cambios de sintaxis (y estructura de paquetes), mirate algo en AS2 y luego lo adaptas http://www.flash-db.com/Tutorials/upload/
Aquí he visto uno con FileReferenceList

jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Mar 2008 02:11 pm
Gracias Jorge:

He un tutorial que anda por aquí (Subir archivos en Flash con FileReference) hecho en AS2 con PHP y me ocurre lo siguiente (a ver si damos con el fallo).

Tenemos tres archivos: upload.fla, lista.php y uploadFile.php.
El archivo upload.fla lo tengo corriendo en (y desde) un equipo local.
Los archivos .PHP los he subido al servidor FTP en la carpeta uploadDir.

Al ejecutar el programa me aparecen los archivos que tengo en la carpeta \uploadDir del servidor y puedo descargármelos sin problema.
El problema es que no puedo subir archivos. Me aparece el cuadro de diálogo donde selecciono el archivo e inmediatamente después aparece una barra de progreso que va avanzando hasta llegar al 100%.
Parece que todo funcione correctamente, pero revisando la carpeta en mi servidor, el fichero no aparece. Realmente no ha hecho la subida.

¿Qué puedo estar haciendo mal?

Por Iraultz

8 de clabLevel



 

msie7
Citar            
MensajeEscrito el 12 Mar 2008 02:14 pm
Mira que la carpeta destino tenga derechos de escritura

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Mar 2008 06:44 pm
Hola de nuevo:

Presupongo que la carpeta no tiene proteción contra escritura porque puedo escribir en ella sin problemas mediante el programa que utilizo para conectar a FTP (Total Commmander).

Lo que sí es cierto es que para ello tengo que introducir un nombre de usuario y contraseña.

¿És necesario introducir nombre de usuario y contraseña desde Flash?, Creo que, al menos hace falta un nombre de usuario para conectarse vía FTP. Aunque para descargar archivos no lo es.

El archivo PHP es el siguiente:

<?php
$uploadDir = 'uploadDir/';
$uploadFile = $uploadDir . $_FILES['Filedata']['name'];
move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
?>
Gracias

Por Iraultz

8 de clabLevel



 

msie7
Citar            
MensajeEscrito el 12 Mar 2008 06:52 pm
El usuario sobre el que corre PHP no es el mismo con el que haces FTP, dale permisos 777 para probar, luego ya lo ajustas si ves que es eso

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Mar 2008 07:57 pm
Lo conseguí:

He estado mirando por ahí y he descubierto que el mensaje de error era el siguiente:

HTTP Error 406

Para evitar ese error hay que generar un archivo .htaccess o htaccess que contenga el siguiente código:

SecFilterEngine Off
SecFilterScanPOST Off

Después, en el PHP hay que decir nombre de usuario y contraseña de forma que queda de la siguiente manera:

<?php
//mover archivo de filereference
move_uploaded_file($_FILES['Filedata']['tmp_name'], "ftp://usuario:contraseñ[email protected]/httpdocs/uploadDir/".$_FILES['Filedata']['name']);
chmod("./files/".$_FILES['Filedata']['name'], 0777);
?>

No se muy bien que es lo que hace (soy casi nulo en PHP) pero funciona!

Lo único que me queda ahora es saber como puede enviar un archivo en concreto desde la aplicaicón (quiero decir sin que el usuario tenga que seleccionarlo de un cuadro de dialogo) de manera automática.

La idea es que el SWF vaya subiendo archivos generados desde otra aplicación.

Imagino que esto es posible...

Gracias de nuevo por todo.

Por Iraultz

8 de clabLevel



 

msie7
Citar            
MensajeEscrito el 12 Mar 2008 08:12 pm
Nop debido al sandbox del Flash player (sería ideal para "robar" archivos de un sistema)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Mar 2008 02:33 pm
He estado trabajando en ello y me parece que tienes toda la razón. Pero de alguna manera se ha de poder hacer.
Es verdad que podría ser peligroso al ejecutarlo desde un servidor, pero si es un programa que funciona de forma local en tu PC tu eres el responsable de su uso, yo la utilidad que le quiero dar es esa.

¿Crees entonces que debería utilizar algún otro lenguaje informático para crear dicha aplicación? ¿Cuál me aconsejarías?

La verdad es que flash sería lo ideal ya que todo el proyecto lo estoy haciendo desde él. Si se te ocurre algo, por favor dímelo.

Miles de gracias.

Por Iraultz

8 de clabLevel



 

msie7
Citar            
MensajeEscrito el 13 Mar 2008 02:39 pm
Ahí ya tienes que programar para un OS específico, usualmente las aplicaciones locales van bien con C++, pero eso es otro palo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Mar 2008 02:53 pm
Ya, bastante me ha costado aprender a programar en Flash para llegar hasta aquí y ahora tener que liarme con otro lenguaje.

Probaré a buscar por ahí a ver que veo. Es una lástima, tardé bastante tiempo en encontrar cristalab y la verdad es que me va muy bien mirar por aquí para solucionar mis dudas.

Gracias igualmente. Si se te ocurre algo no dejes de decírmelo..

Por Iraultz

8 de clabLevel



 

msie7

 

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