Cuando se utiliza un estándar <input type="file" />
en un sitio MVC3, puede recibir el archivo en su método de acción mediante la creación de un parámetro de entrada de tipo HttpPostedFile
y establecer la forma de enctype="multipart/form-data"
archivos avanzado Asp.Net subir
Uno de los problemas de este enfoque es que la solicitud no se completa y no se transfiere a su método de acción hasta que se haya cargado todo el contenido del archivo.
me gustaría hacer algunas cosas para ese archivo a medida que se carga en el servidor. Básicamente, quiero recibir de manera asíncrona los datos a medida que entran y, luego, manejar los bytes de datos por byte mediante programación.
Para lograr lo anterior me imagino que tendrá que manejar esta parte de la solicitud en un HttpModule o costumbre HttpHandler tal vez. Estoy familiarizado con cómo funcionan esas cosas, pero no estoy familiarizado con el método de recibir los datos de carga de archivos de manera asincrónica.
Sé que esto es posible porque he trabajado con componentes de terceros en el pasado que hacer esto (normalmente para que puedan informar el progreso de carga, o almacenar en caché los datos en el disco para evitar las limitaciones de memoria de iis/asp.net). Desafortunadamente, todos los componentes que he usado son de código cerrado, así que no puedo mirar dentro y ver qué están haciendo.
No estoy buscando para el código, pero puedo conseguir alguien me señaló en la dirección correcta aquí?
¿Ha mirado pasar la solicitud fuera a un servicio WCF? – Lloyd
un vistazo a [el post de Jon Galloway] (http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx), se puede señalar que en la dirección correcta (específicamente su mención de [NeatUpload] (http://neatupload.codeplex.com/) parece prometedora). – staterium