Я сделал сервис весенней загрузки и интерфейса в Reactjs, но мой сервис ничего не дает (нет результата)
Я загружаю данные формы с изображением или звуком файла, но я не получаю никаких файлов в моей службе отдыха.
Мой класс обслуживания:
@CrossOrigin
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public ServiceResponse save(MultipartHttpServletRequest request)
{
String event_name=request.getParameter("event_name");
logger.debug("event name: "+event_name);
logger.debug("Has a file :"+request.getFileNames().hasNext()); // getting false
if (request.getFileNames().hasNext()) {
// Working here
try{}
catch(Exception e){
return ServiceResponse.createFailureResponse("Request
failed!");
}
}
return ServiceResponse.createSuccessResponse();
}
Требуется зависимость:
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
Бин создан:
@Configuration
@ComponentScan
@EntityScan("com.mphasis.springreact.services.admin")
@EnableJpaRepositories("com.mphasis.springreact.services.admin")
@PropertySource("classpath:config.properties")
public class DBConfiguration {
public DBConfiguration() {
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource)
{
return new JdbcTemplate(dataSource);
}
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("org.postgresql.Driver");
dataSource.setUrl("jdbc:postgresql://localhost:5432/DummyApp");
dataSource.setUsername("postgres");
dataSource.setPassword("root");
return dataSource;
}
@Bean(name = "multipartResolver")
public CommonsMultipartResolver createMultipartResolver() {
CommonsMultipartResolver resolver=new CommonsMultipartResolver();
resolver.setDefaultEncoding("utf-8");
return resolver;
}
@Bean
public MultipartResolver filterMultipartResolver()
{
return new StandardServletMultipartResolver();
}
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
Вот моя часть внешний интерфейс, хотя сама служба не работает:
var blob = new Blob(this.state.chunks, {type: 'audio/mp3;codec=opus'});
var formData=new FormData();
formData.append("event_name",event);
formData.append("file",new File([blob], event, {type: 'audio/mp3;codec=opus', lastModified: Date.now()}));
fetch('http://localhost:6020/uploadFile', {
method: "POST",
mode: "cors",
cache: "no-cache",
redirect: "follow",
referrer: "no-referrer",
body: formData,
})
.then(response => response.json())
.then(function(data){ console.info( JSON.stringify( data ) ) });
Я пропустил веб-зависимость в классе обслуживания, так как я сделал вызов отдыха, поэтому мне он не нужен, я думаю, но в большинстве учебных заведений упоминалось, что он используется для многостраничного файла
Помимо этого, я не могу записывать свои данные в файл, но консоль работает с тем же кодом, который я написал для другого модуля, который работает
Похоже, вам нужно аннотировать с помощью @MultipartConfig
@secretsuperstar нет, я ошибаюсь в request.getFileNames().hasNext() с использованием или без использования указанной выше аннотации




Я получаю event_name, но не файл