en: Programacion
La última versión de Adobe Flash trae una clase realmente útil a la hora de subir archivos mediante Flash, esta tarea en versiones anteriores era bastante más complicada.
Para realizar este ejemplo no se necesita casi ningún tipo de conocimiento previo ya que es un ejemplo bastante sencillo, la clase flash.net.FileReference
nos permite abrir la caja de búsqueda de archivos de nuestro sistema operativo y escoger archivo para enviarlo al servidor.
En los ejemplos de la página el directorio de destino no tiene permisos de escritura así que la subida no se llegará a completar, de todas maneras en los ejemplos se puede ver el proceso completo.
Este es un ejemplo con una interfaz en la cual se puede subir archivos a un servidor remoto, mostrando una barra de progreso y una lista de las acciones que se van realizando, todo ello usando la clase anteriormente citada flash.net.FileReference.
Como he dicho anteriormente el ejemplo es muy sencillo y está debidamente comentado, en este enlace te puedes descargar el ejemplo completo para probarlo en otro servidor.
Ver ejemplo
Descargar código fuente
Para ver bien su funcionamiento habrá que subir un archivo de un peso aproximado a 1 MB.
creationDate : Date La fecha de creación del archivo en el disco duro.
creator : String El creador de archivos para Macintosh Disponible solo para Macintosh.
modificationDate : Date La fecha de cuando el archivo fue modificado por ultima vez.
name : String El nombre del archivo.
size : uint El tamaño del archivo, en bytes.
type : String El tipo de Archivo.
addListener(listener:Object) : Void Registra un objeto para recibir una notificación cuando un evento es invocado.
browse([typelist:Array]) : Boolean Lanza la caja de dialogo para escoger un archivo.
cancel() : Void Cancela la operación de subir o descargar archivos.
download(url:String, [defaultFileName:String]) : Boolean Lanza la caja de dialogo donde el usuario escoge donde guardar el archivo que descargara del servidor.
removeListener(listener:Object) : Boolean Remueve el objeto de la lista de objetos que reciben los eventos de notificación.
upload(url:String) : Boolean Comienza la transferencia del archivo seleccionado hacia el servidor.
onCancel Se invoca cuando el usuario hace clic en el botón cancel de la caja de dialogo.
onComplete Se invoca cuando la transferencia del archivo termina, ya sea cuando se sube o se descarga.
onHTTPError Se invoca cuando ocurre un error de http.
onIOError Se invoca cuando ocurre un error input/output ocurre.
onOpen Se invoca cuando la transferencia del archive comienza, ya sea cuando de sube o se descarga.
onProgress Se invoca cada determinado tiempo hasta que la transferencia del archivo termina, ya sea cuando se sube o se descarga.
onSecurityError Se invoca cuando la transferencia del archive falla por rezones de seguridad.
onSelect Se invoca cuando el usuario escogió el archivo desde la caja de dialogo.
1 Respuesta a Subir archivos en Flash con FileReference y Php
Emiliano
29 de Abril de 2008 a las 2:26 pm
Muy bueno.
Para los que no lo pueden compilar, tienen que renombrar el archivo subida.as como UploadExample.as y listo.
Mi único problema es que no se por que no puedo subir archivos de más de 50 megas!, a alguien le pasó ?
Gracais
Víctor
10 de Diciembre de 2007 a las 6:07 pm
Gracias colega!!!. Muy buen artículo. Es de gran ayuda cuando quieres subir un fichero de gran tamaño para que el cliente sepa que porcentaje lleva de subida y no hacerle esperar sin saber que es lo que ocurre. Además muy fácil de implementar.
Snow
30 de Marzo de 2008 a las 2:14 pm
Buenas tardes, ante todo decirte que muy buen trabajo y agradecerte que lo compartas.
Por otro lado me gustaría preguntarte sobre como se podrían aplicar las siguientes funcionalidades:
1.- Que aparezca un listdo de los archivos subidos
2.- Que los puedas descargar
3.- Que los puedas borrar del server.
Gracias por adelantado
Atentamente
Snow
Anónimo
14 de Abril de 2008 a las 12:54 am
cuando lo abro con flash cs3 se dalña el archivo…. los botones se desabilitan y sale errro que no se pudo cargar la “”"UploadExampla…que tengo que hacer?
Anónimo
20 de Mayo de 2008 a las 4:28 pm
hola me llamo andy, thnks x compartir tus conocimientos, fijate que estoy tratando de adecuar tu ejemplo para subir lñas imagenes a un servidor, pero me sale error de:
onIOError: 1-trabajando.jpg
* Proceso de subida fallido al comenzar
ya renombre el archivo de subida.as
si me pudieras ayudar, no le he cambiado nada, ¿donde se le indica en que ruta guardar las imagenes?
espero ansiosa tu respuesta jeje
andy
22 de Mayo de 2008 a las 1:04 pm
ke ondas guarro tambien a mi me pasa lo mismo no sera por las versiones del flash ke el ejemplo no sea para Flash 8? ke es con el ke lo estoy usando,
bueno si lo resulevo o lo resuelves nos avisamos no?
:=)
Betza
31 de Mayo de 2008 a las 10:14 am
Hola probe el ejemplo y funciona pero por alguna razon solo sube el ultimo archivo seleccionado si pudieras explicarme seria de gran ayuda. Ademas modifique el archivo as para que no me mostrara toda la informacion del archivo que trato de subir pero igual lo muestra. Gracias por tu ayuda
Abel
11 de Diciembre de 2007 a las 1:03 am
No es Macromedia sino Adobe Flash ;D
JimmySlam
12 de Diciembre de 2007 a las 5:24 pm
Pues yo ya llevo usando este tipo de uploads desde hace mas de un anio. Lo hacia ya con flash 8 osea que de nuevo tiene poco
Anónimo
13 de Febrero de 2008 a las 8:03 am
Asique tu servidor se encuentra en teconozco.net!
Jaime
22 de Enero de 2008 a las 4:29 pm
Como puedo hacer que acepte todo tipo de archivos, que pueda subir a mi servidor todo tipo de archivos pdf, ppt, psd, swf, etc etc etc, Lo agradecere mucho..
fabiana
12 de Mayo de 2008 a las 8:11 am
Hola necesito urgente el codigo y si podrias indicarme donde reemplazar con mis datos por q no logro hacerlo funcionar
gracias!!!
Kai
3 de Junio de 2008 a las 5:03 am
Muy buen artículo!!
Gracias por la explicación.
Pero a que se debe el siguiente error?
* Proceso de subida fallido al comenzar
onIOError: lista.gif
alguien lo sabe?
Guarro
22 de Mayo de 2008 a las 11:20 am
hola que tal a todos
bueno me pareci interezante y sencilla esta forma de subir archivos al server
trate de implementar esto, pero no me funciono.. al final de la carga de archivos me salio un mensaje que dice:
onHTTPError: sin global.jpg
a alguien le ha pasado???
chabona
14 de Julio de 2008 a las 12:33 am
Hola gente!!! Espero que alguien me pueda dar una manito. No soy experta en Flash y como se imaginaran probe el ejemplo pero NO ME FUNCIONA!!
Cuando lo ejecuto me tira el sig. error:”No se pudo cargar la clase o interfaz ‘UploadExample’.” No se si es por ello que no funciona¿?¿?¿?¿?¿
¿Alguien sabe que debo cambiar del codigo para que funcione?
Muchisismas gracias.
Anónimo
3 de Noviembre de 2008 a las 2:43 pm
pues no lo habre mi pc alguien me puede decir como es un archivo zip el ejemplo
Ana
28 de Octubre de 2008 a las 4:30 am
Hola, pues en Mac no funciona, cuando le doy a examinar no me deja subir ningún archivo, ni imágenes ni nada.
¿Como puedo hacer para poder subir archivos con Mac?
Gracias
Ana
28 de Octubre de 2008 a las 4:30 am
Hola, pues en Mac no funciona, cuando le doy a examinar no me deja subir ningún archivo, ni imágenes ni nada.
¿Como puedo hacer para poder subir archivos con Mac?
Gracias
antonio
22 de Agosto de 2008 a las 12:17 pm
un 10 para el programador, pero al cambiar las extensiones del .as y publicarlo me sale un error que no puede decrear la uploadejemplo, alguien sabe porque?
Ana
28 de Octubre de 2008 a las 4:31 am
Hola, pues en Mac no funciona, cuando le doy a examinar no me deja subir ningún archivo, ni imágenes ni nada.
¿Como puedo hacer para poder subir archivos con Mac?
Gracias
PetBang
21 de Enero de 2009 a las 10:16 am
Como veo que nadie da una solución para todas esas personas que no les funciona el ejemplo cuando compilan la pelicula, pues bien:
*El problema es porque esta mal la referenfia del ActionScript (subida.as)
Teneis que renombrar ’subida.as’ a ‘UploadExample.as’ y luego si ejecutais los dos ficheros tanto el ‘fla’ como es ‘as’ el ‘fla’ os dejara compilar, así de sencillo.
Para los que no les deja subir mas de 3 o 5 megas seguramente sea por culpa del servidor, hay un archivo en tu server llamado php.ini dentro de el hay un bloque llamado File Uploads ahi es donde hay que modificarlo.