Загрузка двоичного файла с пружинной табличкой

#java #spring #spring-boot #resttemplate

Вопрос:

Изображение

Я хочу написать клиентский код для использования API. API ожидает текстовый файл. Когда я выбираю опцию двоичного файла в инструменте почтальона и выбираю любой текстовый файл из моего локального, он работал. как это реализовать весной ?. Я пробовал MULTIPART_FORM_DATA, но безуспешно.

Комментарии:

1. Покажите свои усилия

Ответ №1:

Если Вы имеете в виду файл

 @RestController
public class FileContentController {
    
@RequestMapping(value="/up", method = RequestMethod.POST)
public ResponseEntity<?> upload(@RequestParam("file") MultipartFile file) 
        throws IOException {
        String  contentType=file.getContentType());
        InputStream i=file.getInputStream();
        return new ResponseEntity<>(HttpStatus.OK);
    }
    return null;
}
 

также spring boot имеет несколько компонентов, вы должны включить его и установить размер и tempdir
,в более ранней версии spring boot нужно добавить:

 spring.servlet.multipart.max-file-size=128KB
spring.servlet.multipart.max-request-size=128KB
spring.servlet.multipart.enabled=true
spring.servlet.multipart.location=${java.io.tmpdir}
 

Однако в вашем клиентском коде вы не должны устанавливать приложение типа контента/json в своем заголовке post-запроса
простая выборка должна быть такой

 const input = document.getElementById('uploadInput');
const data = new FormData();
data.append('file', input.files[0]);
var resp = await fetch('upload/', {
                        method: 'POST',
                        body: data
                          });
if (!resp.ok) {
  throw new Error(`HTTP error! status: ${resp.status}`);
}
if (resp.ok) {
  await this.images();
}