Arrays 如何使用RestfulAPI传输字节[]之类的文件

Arrays 如何使用RestfulAPI传输字节[]之类的文件,arrays,spring,rest,Arrays,Spring,Rest,上下文 我正在尝试创建一个restful API服务,允许上传文件和保存。该方法必须是post并以字节[]的形式发送。我还想创建一个RestTemplate客户端来发送文件 问题 该文件已创建,但尚未上载,因为它需要1KB。我不知道问题出在哪里。可能restTemplate未发送字节[] 代码 Restful Api服务 服务 @Service public class FileSaveService { @Value("${path.file}") private String path

上下文

我正在尝试创建一个restful API服务,允许上传文件和保存。该方法必须是post并以字节[]的形式发送。我还想创建一个RestTemplate客户端来发送文件

问题

该文件已创建,但尚未上载,因为它需要1KB。我不知道问题出在哪里。可能restTemplate未发送字节[]

代码

Restful Api服务

服务

@Service
public class FileSaveService {

 @Value("${path.file}")
 private String path;

 @Value("${filename}")
 private String name;

 public void save(byte[] bytes) {

  try {
   FileUtils.writeByteArrayToFile(new File(path + name), bytes);

   BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(path + name)));
   stream.write(bytes);
   stream.close();

  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}
摇摇晃晃

@RestController
@RequestMapping("v1/")
public class FileSaveController {

 @Autowired
 private FileSaveService fileSave;

 @RequestMapping(value = "sent", method = RequestMethod.POST)
 public String getFile(@RequestParam byte[] data) {
  fileSave.save(data);
  return "Ok";
 }

}
RestTemplate客户端:

@Service
public class FileSentService {
 final static private String URL = "http://localhost:8080/v1/sent";
 private RestTemplate restTemplate = new RestTemplate();

 public String convertFileToByteArr() throws IOException {

  InputStream in = new ClassPathResource("pdf.pdf").getInputStream();
  URI url = UriComponentsBuilder.fromHttpUrl(URL).queryParam("data", IOUtils.toByteArray( in )).build().encode()
   .toUri();
  return restTemplate.postForObject(url, null, String.class);
 }

}
控制器

@RestController
public class FileSent {
 @Autowired
 private FileSentService fileSent;

 @RequestMapping(method = RequestMethod.POST, value = "upload")
 public byte[] sent() {
  try {
   return fileSent.convertFileToByteArr();
  } catch (IOException e) {

   e.printStackTrace();
  }
  return null;

 }
}

您可以使用
@RequestBody
标记将字节放入请求正文中

okey,但我无法将字节[]转换为文件。我不知道问题出在哪里