Spring MVC Datei-upload - Nicht Teile, da keine multi-part-Konfiguration wurde zur Verfügung gestellt

So, ich bin ein Neuling auf Frühling, und ich versuche, Datei-upload funktioniert für mein Projekt (ich bin mit der Spring Tool Suite btw.) und wenn Sie ein Formular Einreichen alle ich bekomme ist:

HTTP Status 500 - nicht analysieren Konnte-servlet, multipart-request; nested exception is java.lang.IllegalStateException: Nicht teilen, da keine multi-part-Konfiguration angegeben wurde

Stack-trace aus dem browser:

type Exception report 

Nachricht Konnte nicht analysiert-servlet, multipart-request; nested exception is java.lang.IllegalStateException: Nicht teilen, da keine multi-part-Konfiguration wurde zur Verfügung gestellt 

Beschreibung Der server hat einen internen Fehler, der verhinderte, dass es von der Erfüllung dieser Anforderung. 

Ausnahme 

org.springframework.web.multipart.MultipartException: nicht analysieren Konnte-servlet, multipart-request; nested exception is java.lang.IllegalStateException: Nicht teilen, da keine multi-part-Konfiguration wurde zur Verfügung gestellt 
org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:100) 
org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.(StandardMultipartHttpServletRequest.java:78) 
org.springframework.web.multipart.support.StandardServletMultipartResolver.resolveMultipart(StandardServletMultipartResolver.java:75) 
org.springframework.web.multipart.Unterstützung.MultipartFilter.doFilterInternal(MultipartFilter.java:108) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106) 
Ursache 

java.lang.IllegalStateException: Nicht teilen, da keine multi-part-Konfiguration wurde zur Verfügung gestellt 
org.apache.catalina.- Anschluss.Anfrage.parseParts(Request.java:2676) 
org.apache.catalina.- Anschluss.Anfrage.getParts(Request.java:2643) 
org.apache.catalina.- Anschluss.RequestFacade.getParts(RequestFacade.java:1083) 
org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:85) 
org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.(StandardMultipartHttpServletRequest.java:78) 
org.springframework.web.multipart.support.StandardServletMultipartResolver.resolveMultipart(StandardServletMultipartResolver.java:75) 
org.springframework.web.multipart.Unterstützung.MultipartFilter.doFilterInternal(MultipartFilter.java:108) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106) 

Hinweis: Der volle stack-trace, der die Ursache ist in den Apache-Tomcat/8.0.27 Protokolle. 

Dies ist der form-tag in der jsp:

<form:form class="form-horizontal" role="form" method="post"
            action="newArtist.html" modelAttribute="artist" enctype="multipart/form-data">

Input part:

<div class="form-group">
    <div class="col-lg-3">
        <label for="photo">Artist photo:</label>
        <form:input type="file" id="photo" path="photo"></form:input>
    </div>
</div>

Foto gespeichert ist, in diesem Bereich Künstler-Objekt:

@Lob
private byte[] photo;

Controller mapping-Methoden:

@RequestMapping(value = "/newArtist", method = RequestMethod.GET)
public String showAddArtistForm(Model model)
{
    model.addAttribute("artist", new Artist());
    return "newArtist";
}

@RequestMapping(value = "/newArtist", method = RequestMethod.POST)
public String addArtist(@ModelAttribute("artist") @Valid Artist artist, BindingResult result,
        @RequestParam("photo") MultipartFile photo) throws IOException
{   
    if (result.hasErrors())
        return "newArtist";

    if(photo.getBytes() != null)
        artist.setPhoto(photo.getBytes());

    artistService.addArtist(artist);

    return "redirect:artists.html";
}

Multipart resolver-Konfiguration in servlet-context.xml:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="10000000"/>
</bean>

Filter in web.xml:

<filter>
    <filter-name>MultipartFilter</filter-name>
    <filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class>
</filter>
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>MultipartFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Abhängigkeiten:

<!-- Apache Commons FileUpload -->
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.1</version>
    </dependency>

    <!-- Apache Commons IO -->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>

Ich auch importiert Tomcat-config-Datei context.xml zu META-INF/context.xml und bearbeitet Kontext-tag, etwa so:

<Context allowCasualMultipartParsing="true">

Nichts scheint zu funktionieren, jede Hilfe wird sehr geschätzt.

InformationsquelleAutor kbijoch | 2016-06-20

Schreibe einen Kommentar