asp.net - sesión - ¿Cómo puedo obtener cargas de archivos similares a Gmail para mi aplicación web?
gmail sign in (10)
Eche un vistazo a SWFUpload , que es esencialmente una aplicación de JavaScript para las capacidades de manejo de carga de archivos absolutamente superiores de flash. Lo mejor que hay hasta que los navegadores finalmente se pongan al día.
Desde el enlace:
- Cargar varios archivos a la vez mediante ctrl / shift-selection en el cuadro de diálogo
- Devolución de llamada de Javascript en todos los eventos
- Obtenga información de archivo antes de que comience la carga
- Elementos de carga de estilo con XHTML y CSS
- Mostrar información mientras los archivos se cargan usando HTML
- No se necesita recargar la página
- Funciona en todas las plataformas / navegadores compatibles con Flash.
- Se degrada graciosamente al formulario normal de carga de HTML si Flash o JavaScript no están disponibles
- Controlar el tamaño del archivo antes de iniciar la carga
- Mostrar solo los tipos de archivos elegidos en el diálogo
- Cargar en cola, eliminar / agregar archivos antes de comenzar a cargar
----- carga iframe -----
Para comenzar, quiere tener un iframe en su página. Esto es para la comunicación del servidor. Lo esconderás más tarde, pero por ahora, mantenlo visible. Dale a ese iframe un atributo de nombre, como "uploader" o algo así.
Ahora, en su forma, establezca el objetivo al nombre del iframe y la acción a un script que tenga en el servidor que acepte la carga de un archivo (como un formulario normal con una carga de archivo). Agregue un enlace dentro de ese formulario con el texto "Agregar archivo". Establezca ese enlace para ejecutar una función de JavaScript que agregará una nueva entrada al formulario. Esto se puede hacer a través del DOM, pero recomendaría una biblioteca de JavaScript como jquery .
Una vez que la nueva entrada de archivo se agrega al formulario, establezca el evento de desenfoque de esa entrada a una función de javascript que enviará el formulario y luego lo revisará periódicamente para su salida. Leer un iframe puede ser complicado, pero es posible.
Haga que su archivo cargue el resultado del script como "Hecho". o un nombre de archivo o algo cuando la carga se completa.
Verifíquelo cada segundo o más hasta que haya contenido. Una vez que tenga contenido, elimine su temporizador y reemplace la entrada del archivo con el nombre del archivo (o "Archivo cargado") o lo que sea.
Oculta tu iframe con css.
Quiero agregar funcionalidad de carga de archivos similar a Gmail para uno de mis proyectos. ¿Puede alguien ayudarme con esto?
Mi aplicación está construida en vb.net.
Agradecería cualquier tipo de ayuda u orientación.
Gracias
El código de Gmail es difícil de encontrar, pero si tuviera que adivinar, así es como funciona:
- Cuando hace clic en "adjuntar otro archivo", inserta un control de archivo de tipo de entrada regular. En IE, también puede activar el evento click en el botón "Examinar" de forma programática para que el diálogo de archivo se abra inmediatamente (no hace esto en Firefox, y no tengo IE práctico, pero creo que IE lo permite)
- Después de seleccionar un archivo, este detecta el evento de cambio del control de entrada e inicia un temporizador.
- Cuando se dispara el temporizador, separa el elemento de entrada del formulario y lo agrega a una forma diferente en un iframe oculto, colocando un enlace simple en la forma principal (visible). El iframe oculto se envía para cargar el archivo. (También puede clonar el elemento de entrada, pero no he probado si esto funciona).
Me gustaría aclarar un poco más sobre la carga de archivos "similares a Gmail".
¿te refieres a cómo si se asienta un poco, automáticamente lo une a un calado?
Puedes usar iFrames para esto
Para una solución que no sea flash, puede usar NeatUpload . Lo usé en un proyecto extenso el año pasado con un requisito de no flash. Es muy fácil de integrar en las soluciones existentes. Pensé que era muy fácil trabajar con él. Más fácil, en mi experiencia limitada, que trabajar con SWFUpload en ASP.NET. Probablemente porque NeatUpload está diseñado solo para ASP.NET.
Aquí está el clon de carga de Gmail . Este es el clon exacto del cargador de Gmail con algunas instalaciones adicionales. Puede ver las miniaturas de las imágenes después de cargarlas, arrastrar las miniaturas para cambiar el orden y reemplazar cualquier miniatura. Se hace usando jQuery . Puedes ver la demostración aquí . El código fuente se puede descargar gratis en un solo archivo zip .
Espero que pueda eliminar fácilmente algún código y obtener lo deseado. Puede dejar comentarios en el blog de ABCoder si necesita más ayuda.
Puede usar el clon de Flickr Uploader en su lugar.
¿Estás hablando de una carga sin una devolución de página completa? Eche un vistazo a http://www.phpletter.com/Demo/AjaxFileUpload-Demo/ , que crea un iframe oculto, copia el control de entrada y usa el iframe para realizar la publicación para obtener el archivo en el servidor.
Si está buscando el comportamiento en el que el usuario hace clic en "adjuntar archivo" y aparece automáticamente el cuadro de diálogo de búsqueda de archivos, puede hacerlo a través de Javascript pero no funciona en Firefox, que tiene la precaución de seguridad de requerirle al usuario invoque el botón "Examinar" directamente (en lugar de hacerlo mediante programación a través del script).
Para la carga "automática", use Javascript para adjuntar al evento "cambiar" para la propiedad "valor" del control de "entrada" para que funcione cuando se haya seleccionado un archivo.
Ahora han pasado 2 años, utilicé Uploadify en mi sistema heredado y funciona bien. pero necesitas escribir algún código de hack (como mantener la sesión).
Te recomiendo que uses jquery upload , que es HTML puro, sin swf, sin problemas de sesión y realmente genial.
== en 2013, lo que escribí:
Estoy considerando cuál elegir, SWFupload o uploadify .
pero en el sitio web oficial de SWFupload, dice que no ha estado en desarrollo activo y el autor espera que algún día el SWFupload pueda revivir ...
así que ... decidí probar con "uploadify", que parece compatible con muchas opciones, devoluciones de llamada con muchas demos. (Después de verificar su código fuente, supongo que el autor ajusta el "SWFupload v1" y "SWFupload v2" en su "uploadify v3" ...)
y hay una lista completa de este tipo de cargadores .
De YUI! (Interfaz de usuario de Yahoo), https://yuilibrary.com/yui/docs/uploader/
- Selección de múltiples archivos en un solo cuadro de diálogo "Abrir archivo".
- Filtros de extensiones de archivos para facilitar la selección del usuario.
- Seguimiento de progreso para cargas de archivos.
- Un rango de metadatos de archivos: nombre de archivo, tamaño, fecha de creación, fecha de modificación y autor.
- Un conjunto de eventos distribuidos en varios aspectos del proceso de carga de archivos: selección de archivos, progreso de carga, finalización de carga, etc.
- Inclusión de datos adicionales en la solicitud POST de carga de archivos.
- Carga de archivos más rápida en conexiones de banda ancha debido al tamaño modificado del búfer de ENVÍO.
- Respuesta del servidor de la misma página al finalizar la carga del archivo.
Totalmente libre