내 하드 드라이브에 저장된 이미지를 서블릿에 제공하는 방법은 무엇입니까?
예 :
이미지에 경로 'Images/button.png'
이 저장되어 있으며이를 file/button.png
이라는 서블릿에 제공하고 싶습니다. (그것은 단지 PNG 파일 인 경우)서블릿에서 이미지 파일 출력
26
A
답변
19
image/png
에 Content-Type
헤더를 설정response.getOutputStream()
/file
URL 패턴에 서블릿을 매핑
45
다음은 작동 코드입니다.
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
ServletContext cntx= req.getServletContext();
// Get the absolute path of the image
String filename = cntx.getRealPath("Images/button.png");
// retrieve mimeType dynamically
String mime = cntx.getMimeType(filename);
if (mime == null) {
resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
resp.setContentType(mime);
File file = new File(filename);
resp.setContentLength((int)file.length());
FileInputStream in = new FileInputStream(file);
OutputStream out = resp.getOutputStream();
// Copy the contents of the file to the output stream
byte[] buf = new byte[1024];
int count = 0;
while ((count = in.read(buf)) >= 0) {
out.write(buf, 0, count);
}
out.close();
in.close();
}
0
다른 아주 간단한 방법이 있습니다.
File file = new File("imageman.png");
BufferedImage image = ImageIO.read(file);
ImageIO.write(image, "PNG", resp.getOutputStream());
+1
이미지를 불필요하게 'BufferedImage' 객체로 파싱하므로 매우 비효율적입니다. 이미지를 조작하고 싶지 않은 경우 (크기 조절, 자르기, 변형 등)이 단계는 필요하지 않습니다. 가장 빠른 방법은 이미지 입력에서 수정되지 않은 바이트를 응답 출력으로 스트리밍하는 것입니다. – BalusC
관련 문제
- 1. 서블릿에서 jsp 페이지 인쇄/출력
- 2. 서블릿에서 여러 이미지 onload 표시
- 3. Java 서블릿에서 Processing.org로 이미지 렌더링
- 4. 크기 조정 이미지 출력 파일 이름 문제
- 5. 서블릿에서 http 요청으로 파일 전달
- 6. Unittest 바이너리 파일 출력
- 7. 비 서블릿에서 이미지 경로 가져 오기
- 8. 이미지 출력 성능 최적화
- 9. DataGrid의 출력 이미지
- 10. Kohana 3.2보기에서 출력 이미지
- 11. 서블릿에서 자바 클래스 호출하기 서블릿에서
- 12. 서블릿에서 파일 경로를 알아 보는 방법
- 13. Java 서블릿에서 파일 양식 필드 사용
- 14. 브라우저에서 디스크의 PHP 출력 파일
- 15. 서블릿에서 브라우저로 파일을 보낼 때 출력 스트림은 어떻게됩니까?
- 16. 파일 배열 출력 인쇄
- 17. 출력 XMLWriter를 XML 파일
- 18. Sinatra 출력 파일
- 19. 파이썬에서 출력 파일 리디렉션
- 20. unwrap ldifde 출력 파일
- 21. 파일 입력 출력
- 22. Mathematica에서 파일 입력 출력
- 23. XQuery - 플랫 파일 출력
- 24. 로그 JSP 출력 파일
- 25. Nmake 표준 출력 파일
- 26. Grep에서 여러 출력 파일
- 27. 실행 파일 출력
- 28. 출력 사전을 csv 파일
- 29. 파이썬에서 파일 순차 출력
- 30. 빈 출력 파일
'이미지/png'또는 다음 답변에서 언급 한대로 필요한 내용 유형의 중요성을 알고 계십니까? – Lion