2012-05-30 15 views
24

Wprowadzam wtyczkę do przesyłania plików opartą na jquery http://blueimp.github.com/jQuery-File-Upload/. Istnieje przykładowa aplikacja MVC3, którą można pobrać https://github.com/maxpavlov/jQuery-File-Upload.MVC3.Ograniczenie rozmiaru pliku akcji MVC3

Autor próbki ma komentarza w domu Widok:

@ * Aby używać komend MVC jako procedur obsługi wywołań AJAX, użyj Formularz deklaracji poniżej. (Jeden wykomentowane) nie zaleca Od kiedy KORZYSTANIA MVC kontroler do obsługi żądań nie można kontrolować maxMessageLength Poczty ŻĄDANIE Rodzi to funkcjonalność przesłaniem dużych plików bezużyteczny, chyba że SUCRIFICE bezpieczeństwo i umożliwiają dużej POST MESSAGE ROZMIARÓW SZEROKIE STRONY.

IT lepiej jest użyć obsługi HTTP do przetwarzania żądań PRZEŚLIJ DO MVC ramowej przewiduje sposoby ustawienia maxMessageLength NA PODSTAWIE ZA ACTION * @

Czy to nadal tak jest?

Dowiedziałem się, że mogę ustawić <httpRuntime maxRequestLength="x" /> w web.config, ale rozumiem, że jest to luka w zabezpieczeniach. Czy tak jest również w przypadku?

Wolałbym obsłużyć moje przesyłanie w kontrolerze zamiast korzystania z HttpHandler, ale nie chcę być ograniczony przez rozmiar pliku i nie chcę wprowadzać żadnych luk w zabezpieczeniach, jeśli nie muszę.

Aktualizacja:

Według tego postu File Upload ASP.NET MVC 3.0 domyślny limit wielkości pliku wynosi 4MB. Potwierdziłem ten limit http://msdn.microsoft.com/en-us/library/e1f13641.aspx i rozumiem lukę w zabezpieczeniach.

Czy to jedyny sposób na przesłanie pliku za pośrednictwem kontrolera poza 4mb?

Odpowiedz

48

Można ustawić limit rozmiaru przesyłania w web.config na konkretne działania kontrolera używając location elementu:

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

Gdzie Home to nazwa kontrolera i UploadFiles to nazwa akcji. Limit rozmiaru wynosi tutaj 40 MB.

Nadal, korzystanie z Http Handler do przetwarzania plików nie jest złym rozwiązaniem, jeśli mnie zapytasz.

+0

Właśnie tego szukałem. Dzięki! – Rich

+2

węzeł "lokalizacja" xml musi być dzieckiem "... konfiguracji"? (w web.config). Czy możesz podać, proszę? – sports

+1

@sports Tak, jest potomkiem węzła . Sprawdź moją zaktualizowaną odpowiedź. Dzięki za wkład :) – lucask

Powiązane problemy