728x90
회사 요구사항으로 PDF를 뛰워야했다.
- 이전에 Java로 띄웠었는데, 간편하게 Javascript로 가능하다.
window.open('서버파일경로+파일명.확장자');
- Java로 하면
FileInputStream fis = null;
BufferedOutputStream bos = null;
try {
String pdfFileName = "경로+파일명.확장자";
File pdfFile = new File(pdfFileName);
// 클라이언트 브라우져에서 바로 보는 방법(헤더 변경)
response.setContentType("application/pdf");
// 이 구문이 있으면 [다운로드], 이 구문이 없다면 바로 target 지정된 곳에서 띄울 수 있다.
//response.addHeader("Content-Disposition", "attachment; filename="+pdfFile.getName()+".pdf");
//파일 읽고 쓰는 건 일반적인 Write방식이랑 동일. 다만 reponse 출력 스트림 객체에 write.
fis = new FileInputStream(pdfFile);
int size = fis.available(); //지정 파일에서 읽을 수 있는 바이트 수를 반환
byte[] buf = new byte[size]; //버퍼설정
int readCount = fis.read(buf);
response.flushBuffer();
bos = new BufferedOutputStream(response.getOutputStream());
bos.write(buf, 0, readCount);
bos.flush();
} catch(Exception e) {
e.printStackTrace();
} finally {
try {
if (fis != null) fis.close(); //close는 꼭! 반드시!
if (bos != null) bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
차이가 어마어마하다.
728x90
'개발 > Javascript & Typescript' 카테고리의 다른 글
[Javascript] 배열 (0) | 2022.07.11 |
---|---|
[Javascript] 함수 호출 방식에 의해 결정되는 this (0) | 2022.07.07 |
[Javascript] 매개변수 기본값, Rest 파라미터, Spread 문법, Rest/Spread 프로퍼티 (0) | 2022.07.06 |
[Javascript] let, const와 블록 레벨 스코프 (0) | 2022.07.06 |
[Javascript] 안드로이드 모바일 브라우저에서 PDF띄우기 (0) | 2022.06.28 |