첫 번째 대답
@RequestMapping(value = "/files/{file_name}", method = RequestMethod.GET)
public void getFile(
@PathVariable("file_name") String fileName,
HttpServletResponse response) {
try {
// get your file as InputStream
InputStream is = ...;
// copy it to response's OutputStream
IOUtils.copy(is, response.getOutputStream());
response.flushBuffer();
} catch (IOException ex) {
log.info("Error writing file to output stream. Filename was '" + fileName + "'");
throw new RuntimeException("IOError writing file to output stream");
}
}
두 번째 옵션
@RequestMapping(value = "/files/{fileName}", method = RequestMethod.GET)
public HttpEntity<byte[]> createPdf(
@PathVariable("fileName") String fileName) throws IOException {
byte[] documentBody = this.pdfFramework.createPdf(filename);
HttpHeaders header = new HttpHeaders();
header.setContentType(new MediaType("application", "pdf"));
header.set("Content-Disposition",
"attachment; filename=" + fileName.replace(" ", "_"));
header.setContentLength(documentBody.length);
return new HttpEntity<byte[]>(documentBody, header);
}
@RequestMapping(value = "/files/{file_name}", method = RequestMethod.GET)
@ResponseBody
public FileSystemResource getFile(@PathVariable("file_name") String fileName) {
return new FileSystemResource(myService.getFileFor(fileName));
}
내가 AB에서 옵션 중 하나를 사용할 수 있습니다 세 번째 옵션 비켜? 하지만 사용자가 로컬 드라이브에 저장하고 싶은 위치를 저장하고 싶을 때 확실하지는 않습니다. @ ankur-singhal – participantjava
@participantjava Pls가 위의 방법을 시도하면 사용자가 원하는 곳을 저장할 수있는 다운로드 가능한 창으로 나타납니다. –
ok. 내가 3 번째 옵션을 시도하길 원하나요?하지만 저장할 특정 파일이 없습니다. 위의 게시물에서 볼 수 있듯이, 바이트 [] 데이터, 파일 이름, 파일 확장명을 데이터베이스에서 가져옵니다. 그 파일에 byte [] 데이터를 쓰고 파일명 등을 써서 파일을 만들 필요가있다. @ ankur-singhal – participantjava