Don't handle binary data using String
!
그렇게하면 이진 데이터를 검색 할 수 없게 만들 수있는 방식으로 심하게 엉망으로 만들 수 있습니다 (검색 가능하더라도 복잡하고 매우 취약 해질 수 있습니다 ).
를 사용 ResultSet.getBinaryStream()
하여 데이터베이스에서 PDF 데이터를 가져와야합니다 (적절한 유형의 열에 저장되어 있다고 가정).
그리고 단순히 읽기 InputStream
에 어떤 변환을 수행하지 않는 바이트로 응답 및 쓰기 char[]
나 String
사이에!
왜 당신 response.getOutputStream().write(buf, 0, len);
은 루프 안에 쓰고 있습니까 ? 대신 while 루프 외부에 OutputStream 객체를 만들어 사용하십시오. 이것이 도움이 될 수 있습니다. 같은 것
BufferedOutputStream bOut = response.getOutputStream();
while ((len = bis.read(buf)) > 0){
bOut.write(buf, 0, len);
}
bis.close();
bOut.flush();
출처
https://stackoverflow.com/questions/7415120