Die folgenden Funktionen werden dieses Mal implementiert. ・ Erstellen Sie eine API zum Hochladen von Fotos -Erhalten Sie Daten in Binärform ohne Verwendung von MultipartFile
Controller
java:com.example.UsersController.java
@RequestMapping(path = "/users/upload", method = RequestMethod.POST)
public void upload(InputStream req) throws IOException {
ByteArrayOutputStream byteos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int size = 0;
while ((size = req.read(buf, 0, buf.length)) != -1) {
byteos.write(buf, 0, size);
}
String filename = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now());
Path uploadfile = Paths.get("Users/demo-kusa/image" + filename
+ "." + getFormat(byteos.toByteArray()));
try (OutputStream os = Files.newOutputStream(uploadfile, StandardOpenOption.CREATE)) {
os.write(byteos.toByteArray());
} catch (IOException ex) {
System.err.println(ex);
}
}
** Siehe den verlinkten Artikel für ImageTypeCheck.java ** (Ich habe einige Änderungen vorgenommen, aber es hat so funktioniert, wie es ist) ImageType.java
Beim Senden von Binärdaten gibt es verschiedene Methoden wie http-Client-Befehle wie curl, Erstellen mit Javascript, REST-Client usw., aber diesmal habe ich Postman verwendet.
Nachdem ich bisher geschrieben habe, habe ich festgestellt, dass IOException versucht wird und Controller auslöst. Ich werde es zu einem späteren Zeitpunkt umgestalten. Obwohl es einen Zweck hat, verschwendet es Ressourcen, indem es ByteArrayOutputStream durchläuft. Überprüfen Sie es daher. .. github kaikusakari/spring_crud
Recommended Posts