У меня есть файл, который я пытаюсь отправить с одного сервера на другой. Поскольку объект File
представляет конкретное место в файловой системе, и этот файл не будет существовать на новом сервере, когда я его отправлю, я должен передать его другим способом.Файл поврежден при отправке запроса PUT через Spring RestTemplate
я понял, что лучший способ, чтобы отправить это будет простой массив байт, как и (использование Apache Commons FileUtils):
File file = <...>;
byte[] fileByteArray = FileUtils.readFileToByteArray(file);
restTemplate.put("http://example.com/upload/", fileByteArray);
Затем я получить файл на другом конце так:
@RequestMapping(value = "upload/", method = RequestMethod.PUT)
public void upload(
@NotNull @RequestBody byte[] data
) {
File file = <...>;
FileUtils.writeByteArrayToFile(file, data);
}
Однако файл на другом конце поврежден. Например, если я отправлю zip-файл и попытаюсь открыть его в Проводнике Windows, мне сказали, что он недопустим, хотя с другой стороны он отлично справился. Что происходит?