내 응용 프로그램 사용자가 업로드 한 특정 이미지가 있으며 해당 이미지에만 액세스해야합니다. 미리보기 이미지 또는 다른 방법으로 어떻게 표시 할 수 있습니까? 파일 시스템 (webapp 외부)에 이미지를 저장하고 db에 경로 만 저장합니다.스프링 응용 프로그램에서 jsp로 이미지를 표시하는 방법
하나의 옵션은 tomcat을 구성하여 server.xml의 다음 변경 사항을 통해 해당 디렉토리를 노출하는 것입니다.
localhost:8080/context/images/b1sd2e09102.jpg
등을 통해
<Context path="/images" docBase="/home/app/basedir" />
그리고 액세스 이미지
그러나이가 좋지 않은 (나는 그들이 추측 할 수 없도록 무작위 이미지 이름을 생성하는 UUID를 사용하고 있습니다) 나를위한 해결책 (다른 사용자가 어떻게 든 알 수있는 경우)은 여전히 공개됩니다. 현재 내 스프링 컨트롤러에서 다음을 통해이를 다운로드 할 수 있어요 :
@RequestMapping(value = "/download", method = RequestMethod.GET)
public void download(Model model, @RequestParam("id") String key, HttpServletResponse response) throws Exception {
//get item from db first based on key
Item item = dbservice.get(key);
InputStream is = new FileInputStream(item.getPath());
response.setHeader("Content-Disposition", "attachment; filename=" + item.getFileName());
IOUtils.copy(is, response.getOutputStream());
response.flushBuffer();
....
}
브라우저에 이러한 이미지를 렌더링하는 방법이 있나요?