如何在Spring 5 MVC中将FilePart转换为byte []
来源:爱站网时间:2021-09-16编辑:网友分享
我有一个控制器方法,该方法从Web表单接收并上传文件。如何从FilePart中提取字节数组并将其保存到DB?我可以通过以下方法将FilePart保存到文件中:...
问题描述
我有一个控制器方法,该方法从Web表单接收并上传文件。如何从FilePart中提取字节数组并将其保存到DB?
我可以通过使用FilePart.transferTo()将FilePart保存到文件中来做到这一点,但这似乎很慢而且很丑陋。还有更好的方法吗?
import org.springframework.http.codec.multipart.FilePart;
import org.springframework.web.bind.annotation.*;
Mono uploadFile(@RequestParam("files") FilePart file){
byte[] fileAsByteArray = convertFilePartToByteArray(file);
fileService.saveByteArrayToDB(fileAsByteArray);
/* Rest of the method */
}
思路一:
请参见How to correctly read Flux
思路二:
file.content()
.map { it -> it.asInputStream().readAllBytes() }
.map { it -> fileService.saveByteArrayToDB(it) } // it is Byte array