Quando si utilizza uno standard <input type="file" />
su un sito MVC3, è possibile ricevere il file nel metodo di azione con la creazione di un parametro di ingresso di tipo HttpPostedFile
e l'impostazione del modulo per enctype="multipart/form-data"
Asp.Net di file avanzato caricando
Uno dei problemi di questo approccio è che la richiesta non viene completata e non viene trasferita al tuo metodo di azione fino a quando non è stato caricato l'intero contenuto del file.
Mi piacerebbe fare alcune cose su quel file mentre viene caricato sul server. Fondamentalmente voglio ricevere i dati in modo asincrono e quindi gestisco i dati byte per byte.
Per realizzare quanto sopra, immagino che sarà necessario gestire questa parte della richiesta in un HttpModule o HttpHandler personalizzato forse. Ho familiarità con il modo in cui funzionano queste cose, ma non ho familiarità con il metodo di ricezione dei dati di caricamento dei file in modo asincrono.
So che questo è possibile perché in passato ho lavorato con componenti di terze parti fare questo (normalmente in modo da poter riportare l'avanzamento del caricamento o memorizzare i dati sul disco per evitare limitazioni di memoria iis/asp.net). Sfortunatamente tutti i componenti che ho usato sono closed source, quindi non posso sbirciare dentro e vedere cosa stanno facendo.
Non sto cercando codice, ma qualcuno può farmi puntare nella giusta direzione qui?
Hai guardato passare la richiesta a un servizio WCF? – Lloyd
Dai un'occhiata al [post di Jon Galloway] (http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx), potrebbe farti notare nella giusta direzione (in particolare la sua citazione di [NeatUpload] (http://neatupload.codeplex.com/) sembra promettente). – staterium