2012-05-30 18 views
24

Sto implementando un plugin per il caricamento di file basato su jquery http://blueimp.github.com/jQuery-File-Upload/. Esiste un'app MVC3 di esempio che è possibile scaricare https://github.com/maxpavlov/jQuery-File-Upload.MVC3.Limite dimensioni file azione MVC3

L'autore del campione ha un commento nella Casa Vista:

@ * Per utilizzare le azioni MVC come gestori di AJAX chiamate, utilizzare la dichiarazione form sottostante. (Quella commentata) NON SI CONSIGLIA L'UTILIZZO DA QUANDO MVC CONTROLLER per gestire le richieste ONE non può controllare il maxMessageLength della richiesta POST questo getta LA FUNZIONALITÀ DI caricare grandi file inutili, a meno che SUCRIFICE LA SICUREZZA E gettare grande MESSAGGIO POST DIMENSIONI SITO-LARGO.

E 'meglio usare gestore HTTP per elaborare le richieste CARICARE FINO MVC Framework fornisce metodi per impostare maxMessageLength ON PER AZIONE BASE * @

È ancora il caso?

Ho scoperto che posso impostare <httpRuntime maxRequestLength="x" /> nel web.config, ma la mia comprensione è che si tratta di una vulnerabilità di sicurezza. Anche il caso?

Preferirei gestire il mio caricamento nel controller invece di usare HttpHandler ma non voglio essere limitato dalla dimensione del file e non voglio introdurre alcuna vulnerabilità di sicurezza se non dovessi.

Aggiornamento:

Secondo questo post File Upload ASP.NET MVC 3.0 il limite di dimensione file di default è 4 MB. Ho confermato questo limite http://msdn.microsoft.com/en-us/library/e1f13641.aspx e capisco la vulnerabilità.

È questo l'unico modo per caricare un file tramite un'azione del controller oltre 4mb?

risposta

48

è possibile impostare limite di dimensione di upload in web.config per azione di controllo calcestruzzo con location elemento:

<configuration> 
    <location path="Home/UploadFiles"> 
     <system.web> 
      <httpRuntime maxRequestLength="40960"/> 
     </system.web> 
    </location> 
</configuration> 

Dove casa è un nome di controller e UploadFiles è un nome di azione. Il limite di dimensione è 40 MB qui.

Ancora, l'utilizzo di Http Handler per elaborare i caricamenti di file non è una cattiva soluzione se me lo chiedi.

+0

Proprio quello che stavo cercando. Grazie! – Rich

+2

il nodo xml "location" deve essere figlio di ... "configuration"? (in web.config). Puoi specificare per favore? – sports

+1

@sports Sì, è figlio del nodo . Acquista la mia risposta aggiornata. Grazie per il tuo contributo :) – lucask

Problemi correlati