Ho un controller con un MultipartConfig
un'annotazione (un frammento dei quali è esposizione qui sotto):di SpringBoot @MultipartConfig MaxFileSize non con effetto
@RestController
@RequestMapping("packages")
@MultipartConfig(maxFileSize = 1024*1024*1024, maxRequestSize = 1024*1024*1024)
public class PackagesController
{
@RequestMapping(method = RequestMethod.POST)
public String create(@RequestParam("package") MultipartFile uploadedPackage)
{
// do stuff to the file
return "create";
}
}
Quando carico un file a questo punto finale, però, sembra essere utilizzando i valori di default di configurazione più parti:
Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field package exceeds its maximum permitted size of 1048576 bytes.
at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl$FileItemStreamImpl$1.raiseError(FileUploadBase.java:633) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.checkLimit(LimitedInputStream.java:76) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.read(LimitedInputStream.java:135) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at java.io.FilterInputStream.read(FilterInputStream.java:107) ~[na:1.8.0_45]
at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:98) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:68) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:293) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.catalina.connector.Request.parseParts(Request.java:2776) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
... 30 common frames omitted
la mia applicazione si presenta così:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
}
}
C'è qualcosa che mi manca che consente di applicare l'annotazione @MultipartConfig
?
Sono riuscito a farlo funzionare utilizzando una classe AppConfig separata con un metodo MultipartConfigFactory con un'annotazione Bean, ma non sono ancora sicuro del motivo per cui non ha funzionato con l'annotazione MultipartConfig come sopra. –
'@ MultipartConfig' è un'annotazione Servlet. Spring MVC non ne è a conoscenza. –
Vedere [here] (http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-multipart) su come abilitare l'elaborazione multipart in Spring MVC standard. Con Boot, è un po 'diverso. –