2012-05-30 19 views
24

estoy poniendo en práctica una carga de archivos basado en plugin de jQuery http://blueimp.github.com/jQuery-File-Upload/. Hay una aplicación MVC3 de muestra que puede descargar https://github.com/maxpavlov/jQuery-File-Upload.MVC3.MVC3 Acción Tamaño del archivo de límite

El autor de la muestra tiene un comentario en la vista de Inicio:

@ * PARA USO COMO ACCIONES MVC MANIPULADORES DE AJAX llamadas, utilizar la declaración de formulario. (EL QUE SE HA COMENTADO) NO SE ACONSEJA DESDE CUANDO SE USA EL CONTROLADOR MVC PARA SOLICITAR UNO NO SE PUEDE CONTROLAR maxMessageLength DE LA SOLICITUD DE CORREO ESTE CASTS LA FUNCIONALIDAD DE CARGAR GRANDES ARCHIVOS INÚTILES, A MENOS QUE USTED ASUME LA SEGURIDAD Y PERMITA AMPLIAR PUBLIQUE TAMAÑOS DE MENSAJES EN TODO EL SITIO.

TI es mejor utilizar controlador HTTP para procesar las solicitudes CARGAR HASTA MVC Framework proporciona formas de configurar maxMessageLength EN BASE DE ACCIÓN POR * @

¿Sigue siendo el caso?

Descubrí que puedo configurar el <httpRuntime maxRequestLength="x" /> en el archivo web.config, pero tengo entendido que se trata de una vulnerabilidad de seguridad. ¿Es el caso también?

Preferiría manejar mi carga en el controlador en lugar de utilizar un HttpHandler, pero no quiero estar limitado por el tamaño del archivo y no quiero introducir ninguna vulnerabilidad de seguridad si no es necesario.

Actualización:

De acuerdo con este post File Upload ASP.NET MVC 3.0 el límite de tamaño de archivo por defecto es de 4 MB. Confirmé este límite http://msdn.microsoft.com/en-us/library/e1f13641.aspx y entiendo la vulnerabilidad.

Es esta la única manera de cargar un archivo a través de una acción de controlador más allá de 4 MB?

Respuesta

48

podría configurar límite de tamaño de subida en web.config para la acción del controlador de hormigón con location elemento:

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

Dónde Inicio es un nombre de controlador y UploadFiles es un nombre de acción. El límite de tamaño es 40MB aquí.

Aún así, a través de HTTP Handler para procesar la carga de archivos no es una mala solución si usted me pregunta.

+0

Justo lo que estaba buscando. ¡Gracias! – Rich

+2

el nodo "localización" xml tiene que ser un hijo de ... "configuración"? (en web.config). ¿Puedes especificar por favor? – sports

+1

@sports Sí, es un niño de nodo. Revisa mi respuesta actualizada. Gracias por tu contribución :) – lucask

Cuestiones relacionadas