mvc multipartfile example spring-mvc multipartform-data

spring mvc - multipartfile - org.springframework.web.multipart.MultipartException: la solicitud actual no es una solicitud de varias partes



upload file spring mvc (3)

Compruebe si ha agregado CommonsMultipartResolver en Spring-Servlet.xml .

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

Luego, agregue el enctype a multipart / form-data en su formulario

<form id="fileupload" method="post" enctype="multipart/form-data">

Finalmente en Controller, Request> MultipartHttpServletRequest

@RequestMapping(value = "/profileimageupload", method = RequestMethod.POST) public ModelAndView uploadProfileImage(MultipartHttpServletRequest request) {}

Dependencias

  1. commons-fileupload.jar
  2. commons-io.jar

Estoy tratando de enviar una solicitud de varias partes al servidor, pero recibo la siguiente excepción HTTP Status 500: Falló el procesamiento de la solicitud; la excepción anidada es org.springframework.web.multipart.MultipartException: la solicitud actual no es una solicitud multiparte

<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-body"> <form id="imageuploadForm" action="<c:url value="/members/profileimageupload" />" method="POST" enctype="multipart/form-data"> <div style="width:40%; float:left"> <div class="fileupload fileupload-new" data-provides="fileupload"> <div class="fileupload-preview thumbnail" style="width: 200px; height: 150px;"></div> <div> <span class="btn btn-file"> <span class="fileupload-new">Select image</span> <span class="fileupload-exists">Change</span> <input id="imageFile" name="imageFile" type="file" /> </span> <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Remove</a> </div> </div> </div> <div style="width:40%; float:right" > <div class="progress"> <div class="bar" style="width: 60%;"></div> </div> </div> </form> </div> <div class="modal-footer"> <button class="btn btn-success" id="submit">Upload</button> <button class="btn btn-primary" data-dismiss="modal" aria-hidden="true" >Close</button> </div> </div>

mi llamada ajax que está enviando la solicitud.

$(function() { //twitter bootstrap script $("button#submit").click(function(){ var $form = $("#imageuploadForm"); var type = $form.attr(''method''); var url = $form.attr(''action''); $.ajax({ type: $form.attr(''method''), url: $form.attr(''action''), data: $form.serialize(), success: function(msg){ $("#form-content").modal(''hide''); }, error: function(){ } }); }); });

mi controlador que debe manejar la solicitud

@RequestMapping(value="/profileimageupload",method= RequestMethod.POST) public void uploadProfileImage(@RequestParam(value="imageFile") final MultipartFile file) throws NumberFormatException, IOException{ //// }

Tenía la siguiente configuración web para el archivo de varias partes

@Configuration @EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter { /** * Supports FileUploads. */ @Bean public MultipartResolver multipartResolver() { CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); multipartResolver.setMaxUploadSize(500000000); return multipartResolver; } }


Intenta nuevamente con " encabezados ":

@RequestMapping(value = "/profileimageupload", headers = "content-type=multipart/*", method = RequestMethod.POST)

y ajax call follow: ¿Cómo puedo subir archivos de forma asíncrona?

¡Espero que esto te sea útil!


Parece que su forma de etiqueta no está bien formateada y todo lo que está después del

''action="<c:url value="/members/profileimageupload" />"''

está siendo ignorado Intenta escribir así y mira si funciona:

action="<c:url value=''/members/profileimageupload'' />"