Я создаю файловую службу загрузки в контроллере Spring.
Мой ByteArrayOutputStream записан непосредственно в ответ.getOutputStream с использованием метода ByteArrayOutputStream.writeTo(response.getOutputStream) ). Пока все работает нормально.
Мой вопрос: метод ByteArrayOutputStream.writeTo() безопасен для памяти для большого файла?
Вот фрагмент кода:
@RequestMapping(value = "download/{name}", method = RequestMethod.GET)
public void download(@PathVariable("name") final String name, HttpServletResponse response) throws Exception {
try (ByteArrayOutputStream outputStream = ... /* my ByteArrayOutputStream */) {
// get the file size
int size = outputStream.size();
// filename
String filename = name;
response.setContentType("application/pdf");
response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, HttpHeaders.CONTENT_DISPOSITION);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + filename);
response.setHeader("filename", filename);
response.setContentLength(size);
response.setStatus(200);
// write directly to response
outputStream.writeTo(response.getOutputStream());
response.flushBuffer();
} catch (RuntimeException e) {
throw new RuntimeException(e);
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... r-big-file
Безопасен ли метод WriteTo(OutputStream) ByteArrayOutputStream для большого файла? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение