Я использую Spring Boot и Apache Wicket в веб-приложении.Я должен добавить загрузку файла.
В приведенном ниже коде метод onSubmit компонента Wicket запущен, но "uploads" пуст.
@Override
protected void onSubmit()
{
final List<FileUpload> uploads = fileUploadField.getFileUploads();
if (uploads != null)
{
for (FileUpload upload : uploads)
{
// Create a new file
File newFile = new File(getUploadFolder(), upload.getClientFileName());
// Check new file, delete if it already existed
checkFileExists(newFile);
try
{
// Save to new file
newFile.createNewFile();
upload.writeTo(newFile);
// UploadPage.this.info("saved file: " + upload.getClientFileName());
}
catch (Exception e)
{
throw new IllegalStateException("Unable to write file", e);
}
}
}
}
Метод настройки Spring
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests().antMatchers("/**").permitAll()
.and()
.logout()
.permitAll();
http.headers().frameOptions().disable();
}
Я создал отдельное приложение, которое содержит Wicket, но не Spring, и тот же код загрузки работает без проблем.
Я пробовал это и не работало.
public class SecurityApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
@Override
protected void beforeSpringSecurityFilterChain(ServletContext servletContext) {
insertFilters(servletContext, new MultipartFilter());
}
}
@Bean(name = "filterMultipartResolver")
public CommonsMultipartResolver getMultipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
return multipartResolver;
}
и когда я добавляюПриведенное ниже предложение для URL-адреса действия компонента Form с помощью javascript, метод Wicket «onSubmit» даже не срабатывает
Spring MVC - загрузка файла заблокирована защитой Spring
Редактировать: КогдаЯ смотрю в сети и вижу, что Spring возвращает 302 запроса POST Wicket на загрузку.