Как вернуть байтовый массив как файл в памяти при загрузке Java? - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть байтовый массив в качестве данных.Теперь, как мне написать метод контроллера для возврата этого байтового массива в виде файла, используя Spring Boot?Если я создаю файл из данных этого байтового массива, то я также должен позаботиться об его удалении, верно?

Есть ли способ отправить этот байтовый массив в виде файла без физического создания файла в моем проекте, может быть, отправить все байты через сеть или что-то еще?

Однако, если это невозможно,Это создание файла, отвечая в остальные API, а затем удаление это единственный способ решить эту проблему?Мой метод контроллера будет выглядеть так при весенней загрузке

@GetMapping("/download")
public ResponseEntity<Resource> download(String param) throws IOException {
    // Assume I already have this byte array from db or something
    Byte[] a = getItFromDB();

    // return it as a file without explicitly creating another file in my machine
    // I am ok with changing return type of this method from ResponseEntity to anything else if you have a solution
}

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Как обычно, я думаю, что лучше создать временный файл в своем веб-контейнере и отправить его как файл клиенту.А также вы можете очистить свои временные файлы на основе вашей политики с помощью расписания crontab.Для получения дополнительной информации, пожалуйста, посетите сохранить временный файл и очистить временный файл

0 голосов
/ 20 декабря 2018

Что с этим не так?

public byte[] download(String param) throws IOException {
    return whateverByteArrayContenHere;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...