本家はこちら
SpringBoot webfluxでは、ファイルアップロードはMultiPartで取得できないので、探す。
PartFileというのがよかったでこちらで実験する。
Javaはこちら
package net.ksasaki.springboot.example.controller;
import org.springframework.http.MediaType;
import org.springframework.http.codec.multipart.FilePart;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.ResponseBody;
import reactor.core.publisher.Mono;
import java.io.File;
@Controller
@RequestMapping("")
public class SampleController {
@RequestMapping("")
public String index() {
return "index";
}
@ResponseBody
@PostMapping(value = "/form", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Mono form(@RequestPart("part") FilePart part) {
File file = new File(part.filename());
part.transferTo(file);
return Mono.empty();
}
}
HTMLはこちら
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/form" enctype="multipart/form-data" method="post">
<input type="file" name="parts">
<button type="submit">送信</button>
</form>
</body>
</html>
無事取得できたので、メモ。