Хотите отправить файлы вместе с некоторыми другими значениями также в весенний отдых API - PullRequest
0 голосов
/ 13 июня 2018

У меня есть требование, в котором мне нужно сделать службу отдыха для использования нескольких файлов, а также некоторые другие поля, как создать сервисный контроллер для такого типа требований, только для вложений, есть много ответов, но файлы +По другим данным, я не нашел подходящего ответа, мой класс pojo выглядел так:

import org.springframework.web.multipart.MultipartFile;

public class FileUploadDTO {

    private String name;
    private String location;
    private List<MultipartFile> file;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getLocation() {
        return location;
    }
    public void setLocation(String location) {
        this.location = location;
    }
    public List<MultipartFile> getFile() {
        return file;
    }
    public void setFile(List<MultipartFile> file) {
        this.file = file;
    }

}

Я пытаюсь использовать это у остальных клиентов, пожалуйста, предложите правильный подход.

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

u Можно сделать это следующим образом: используйте @RequestPart для файлов, таких как изображения и любые вложения, и используйте @RequsetParam для «именования / значения» таких параметров, как String, Long, ...

@PutMapping("/upload") //or @PostMapping
public void ResponseEntity<String> uploadFile(@RequestPart file , @RequesParam Long size , @RequestParam String fileName){
//ToDo Something
}
0 голосов
/ 13 июня 2018

Сделайте это так -

В вашем контроллере создайте обработчик метода POST

@PostMapping(value = "/test/upload")
public @ResponseBody String uploadFileTest(@RequestParam("file") MultipartFile file, @RequestParam("stringValue") String stringValue, @RequestParam(value = "booleanValue", required = false) String booleanValue) {
    //your logic
}

От вашего клиента выполните вызов POST формы с необходимыми параметрами.Ввод JSON с @RequestBody не будет работать, так как файл не поддерживается типами данных json.

Вы также можете попробовать с POJO, но для этого пропустите ввод @RequestBody в ваш ввод контроллера.

РЕДАКТИРОВАТЬ: Протестированный пример работы с POJO

Контроллер:

@PostMapping(value = "/test/upload")
public @ResponseBody String uploadFileTest(Dummy dummy) {
    return dummy.getFiles().get(0).getOriginalFilename();
}

и POJO:

public class Dummy {

private List<MultipartFile> files; 
private String stringValue;
private String booleanValue;

public List<MultipartFile> getFiles() {
    return files;
}
public void setFiles(List<MultipartFile> files) {
    this.files = files;
}
public String getStringValue() {
    return stringValue;
}
public void setStringValue(String stringValue) {
    this.stringValue = stringValue;
}
public String getBooleanValue() {
    return booleanValue;
}
public void setBooleanValue(String booleanValue) {
    this.booleanValue = booleanValue;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...