我正在MultipartFile从休息控制器接收一个Spring 对象。我想任何稻毛文件转换为JPG图像,但我只需要将字节数组保存在mongoDb
我发现这段代码可以做到这一点
public boolean convertImageToJPG(InputStream attachedFile) {
try {
BufferedImage inputImage = ImageIO.read(attachedFile);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
boolean result = ImageIO.write(inputImage, "jpg", byteArrayOutputStream);
return result;
} catch (IOException e) {
System.err.println("Error " + e);
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
但result作为一个false没有错误,所以ImageIO.write不起作用
我也发现这样做也一样,但使用File对象,我不想create目录上的文件,我只需要字节数组
public static boolean convertFormat(String inputImagePath,
String outputImagePath, String formatName) throws IOException {
FileInputStream inputStream = new FileInputStream(inputImagePath);
FileOutputStream outputStream = new …Run Code Online (Sandbox Code Playgroud) 我有两个 Spring Boot API,我首先将多部分文件从邮递员发送到一个 Spring Boot 应用程序,然后从那里发送到第二个 Spring Boot 应用程序,如下所示
邮递员(文件)-> API 1 -> API2
当文件从邮递员上传到 API1 时,一切都很顺利,但是当我将这个多部分文件从 API1 发送到 API2 时,一切都会崩溃。我正在使用 WebClient 将文件从 API1 发送到 API2。下面是相关代码以及我在两个 API 的控制台中看到的错误。
API1 中的代码,我使用 WebClient 使用预期文件调用 API2
public List<DTO> importPrograms(String urlPath, MultipartFile file){
try {
MultipartBodyBuilder builder = new MultipartBodyBuilder();
builder.part("file", file);
// also tried
//builder.part("file", new ByteArrayResource(file.getBytes()));
Flux<ProductVersionDTO> flux = webClient.post()
.uri(urlPath)
.contentType(MediaType.MULTIPART_FORM_DATA)
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON.toString())
.accept(MediaType.APPLICATION_JSON)
.bodyValue(builder.build()) // also tried body(BodyInserters.fromMultipartData(builder.build()))
.retrieve()
.bodyToFlux(DTO.class);
return flux.collectList().block();
} catch(Exception e) {
LOG.error(e.getMessage());
return null; …Run Code Online (Sandbox Code Playgroud) webclient file-upload multipartform-data spring-boot multipartfile
我是 Flutter 新手,在将文件上传到 API 时遇到问题。我尝试过使用 FormData 和 MultiPartFile 但它返回错误。我也在这个视频中使用了代码,但它不起作用:
https://www.youtube.com/watch?v=c2tGUt7FLqY&t=318s
任何人都有解决方案。
我有一个 API,用于上传具有以下签名的多个文件 - 接受多部分文件列表和请求对象。
@ApiOperation(consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
@PostMapping("/upload")
public void uploadMultipleFiles(@RequestParam("req") RequestDTO request, @RequestParam("files") List<MultipartFile> files) {}
Run Code Online (Sandbox Code Playgroud)
当我使用 Postman 测试此 API 时,它可以工作,但当我尝试使用 swagger 时,我注意到内容类型作为 application/json 传递,并且 API 给出错误“当前请求不是 multipart”。我尝试将消耗添加到@ApiOperation,但内容类型仍然是application/json。
如何在 Java Spring 启动中将 MultipartFile 照片作为 Base64 字符串插入数据库,并将其从数据库显示在主屏幕上。
spring-boot ×4
api ×1
base64 ×1
file-upload ×1
flutter ×1
flutter-web ×1
form-data ×1
inputstream ×1
java ×1
mybatis ×1
swagger-2.0 ×1
thymeleaf ×1
webclient ×1