|
|
|
@ -146,20 +146,19 @@ public class ComnFileService {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 파일 다운로드 |
|
|
|
|
* |
|
|
|
|
* 파일 일련번호[fileSno]로 파일 다운로드하는 기능. |
|
|
|
|
* @param fileSno |
|
|
|
|
*/ |
|
|
|
|
public void fileDownload(int fileSno) { |
|
|
|
|
|
|
|
|
|
ComFileBas comFileBas = comFileBasRepository.findById(fileSno).orElse(null); |
|
|
|
|
|
|
|
|
|
ComFileBas comFileBas = comFileBasRepository.findById(fileSno).orElse(null); // 파일정보를 데이터베이스에서 조회함.
|
|
|
|
|
if (comFileBas == null) throw new CustomException(ErrorCode.DATA_NOTFIND); |
|
|
|
|
|
|
|
|
|
InputStream inputStream = null; |
|
|
|
|
OutputStream outputStream = null; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
File pdfFile = new File(comFileBas.getFilePath() + comFileBas.getFileSaveNm()); |
|
|
|
|
File pdfFile = new File(comFileBas.getFilePath() + comFileBas.getFileSaveNm()); // 파일경로에 맞춰 파일데이터를 PC에서 가져옴
|
|
|
|
|
inputStream = new FileInputStream(pdfFile); |
|
|
|
|
|
|
|
|
|
String fileOriName = comFileBas.getFileOriNm(); |
|
|
|
@ -176,7 +175,8 @@ public class ComnFileService {
|
|
|
|
|
byte[] buffer = new byte[1024]; //1KB 설정
|
|
|
|
|
int length; |
|
|
|
|
|
|
|
|
|
while ((length = inputStream.read(buffer)) != -1) { |
|
|
|
|
// 요청한 사용자에게 파일데이터 전송
|
|
|
|
|
while ((length = inputStream.read(buffer)) != -1) { |
|
|
|
|
outputStream.write(buffer); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -185,6 +185,7 @@ public class ComnFileService {
|
|
|
|
|
} catch (IOException e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} finally { |
|
|
|
|
// INPUT, OUTPUT의 열어놨던 스트림들을 최종적으로 모두 닫음
|
|
|
|
|
try { |
|
|
|
|
if (outputStream != null) { |
|
|
|
|
Objects.requireNonNull(outputStream).flush(); |
|
|
|
|