欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 使用 Postman 上传二进制类型的图片到后端接口写法

使用 Postman 上传二进制类型的图片到后端接口写法

2025/12/23 8:10:12 来源:https://blog.csdn.net/z284747/article/details/144250418  浏览:    关键词:使用 Postman 上传二进制类型的图片到后端接口写法

我们有的时候会有需求,就是通过 postman 传递二进制图片到后端接口,如下图:

在这里插入图片描述

那我们的 Java 接口需要怎么写呢?

Spring Boot 接收这些数据的方式需要使用 @RequestBody 注解来处理原始的二进制数据(byte[])。

1. 使用 @RequestBody 接收二进制数据

如果在 Postman 中选择了 binary,那么将直接上传文件的二进制数据。可以在 Spring Boot 中通过 @RequestBody 来接收这些二进制数据,并将其保存为文件。

2. Controller 代码示例

下面是一个简单的 Spring Boot 控制器,用于接收 Postman 上传的图片并保存到本地磁盘:

import org.springframework.web.bind.annotation.*;
import org.springframework.http.ResponseEntity;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;@RestController
@RequestMapping("/api/upload")
public class FileUploadController {private static final String UPLOAD_DIR = "uploads/";@PostMapping("/image")public ResponseEntity<String> uploadImage(@RequestBody byte[] fileBytes) {// 判断文件是否为空if (fileBytes.length == 0) {return ResponseEntity.badRequest().body("No file uploaded");}try {// 保存文件到服务器指定路径(这里假设保存为 uploaded_image.jpg)File dest = new File(UPLOAD_DIR + "uploaded_image.jpg");// 确保目标目录存在dest.getParentFile().mkdirs();// 写入文件try (FileOutputStream fos = new FileOutputStream(dest)) {fos.write(fileBytes);}return ResponseEntity.ok("File uploaded successfully: " + dest.getName());} catch (IOException e) {return ResponseEntity.status(500).body("File upload failed: " + e.getMessage());}}
}

3. 详细说明

  1. @RequestBody byte[] fileBytes:

    • @RequestBody 用于接收请求体中的数据,Postman 发送的二进制数据将被自动映射为 byte[] 数组。
  2. 保存文件:

    • 文件会被保存到 uploads/ 目录下,可以根据需要修改保存路径和文件名。
    • 如果目标文件夹不存在,会自动创建。
  3. 返回响应:

    • 如果文件上传成功,会返回 “File uploaded successfully”。
    • 如果上传失败,会返回错误信息。
  4. 配置文件上传大小(可选)

    • 如果你的文件比较大,可以在 application.properties 或 application.yml 中设置上传文件的最大大小。例如:
# 设置文件上传的最大大小
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB

扩展:

我使用 postman 传二进制类型图片到后端的时候遇到一个坑,可以参考这篇文章 - 《使用 postman 传递 binary 类型的图片到后端接口遇到的坑》

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词