2009-05-22 16 views
9

Un amigo y yo hemos estado discutiendo cuál es la mejor manera de enviar archivos de gran tamaño a través de Internet. FTP, servicios web únicos, fragmentación de bytes a múltiples servicios web, envío de archivos HTTP (mensaje de varias partes), interfaz RIA (SilverLight o Flash).Archivo grande (30Mb +) Cargas a través de Internet, ¿cuáles son las mejores opciones?

¿Hay respuestas/soluciones que faltan?

Déjame darte más de mi situación específica.

Tengo una aplicación .NET 2.0 Windows Form "cliente" que interactúa por servicios web con una aplicación ASP.NET. En la aplicación cliente necesito la capacidad de cargar un archivo grande y comunicar el estado de la carga al usuario. Estaba haciendo un único servicio web, pero encontré que el tamaño del archivo era problemático a través de Internet, así que creé varios servicios web para dividir la matriz de bytes. Ahora, queriendo considerar otras opciones.

Algunas investigaciones hecho ...

SilverLight de carga de archivos www.codeplex.com/SilverlightFileUpld

Carga de archivos ASP.NET www.brettle.com/neatupload

FTP en .NET Marco www.windowsdevcenter.com/pub/a/windows/2006/12/12/building-ftp-services-using-net-20.html

Queremos otras opiniones. Gracias.

+0

¿Está utilizando algún tipo de compresión, por ejemplo BZip2? – BobbyShaftoe

Respuesta

5

Tenemos este problema y utilizamos una solución de servicio web con tres llamadas, una para iniciar el proceso, la segunda para enviar fragmentos del archivo y la tercera para finalizar el proceso, funciona como un encanto.

0

Yo mismo soy parcial a la opción Flash/Silverlight (generalmente Silverlight ya que se integra maravillosamente con .NET). Ambas opciones proporcionan un mecanismo estable y rápido para cargar archivos que no cuelgan en la página en la que trabaja, permitiendo el usuario para realizar otras tareas mientras se lleva a cabo la carga (suponiendo que esas tareas no las llevan a otra página).

Un gran ejemplo de un servicio de carga basado en Flash que permite que varios archivos se carguen simultáneamente está en la página de desviación de carga de DeviantArt.com. Puede seleccionar un archivo para cargar, que luego se envía en segundo plano por lo que funcione para su navegador (en algunos casos, creo que se crea un iframe oculto que envía la solicitud de archivo si Flash no está disponible), y obtiene un ícono de archivo con un indicador de progreso asíncrono para cada archivo que se está cargando actualmente.

Uno de los beneficios adicionales de Flash/Silverlight es que puede interactuar con el archivo del lado del cliente antes de enviarlo, lo que le permite hacer cosas como verificar que los datos no sean malware, script, etc. Esto puede ser muy difícil o imposible con la carga de archivos clásica y JavaScript debido a las restricciones de permisos que suelen estar presentes en los navegadores web en estos días (por una buena razón)

Para su aplicación, diría que Silverlight sería la mejor opción para interactuar con su web servicios (supongo que los servicios ASMX clásicos, pero si son WCF, Silverlight también tiene un excelente soporte para WCF también).

0

Hay muchas secuencias de comandos de carga de gran flash s, y tienen características impresionantes.

El que más me gusta es Solmetra Flash Uploader, el online demo se ve impresionante, y también puede establecerlo en ancho y alto cero y guiarlo en Javascript.

Otra opción sería SWFUpload, es menos llamativa pero podría hacer el trabajo mejor según tus necesidades. También tiene un online demo.

Incluso Gmail uses flash to upload attachments.

Cuestiones relacionadas