2012-08-14 3 views
1

나는 그의 이미지를 포함하여 사용자의 정보를 저장해야하는이 프로젝트를하고 있습니다. 데이터베이스에 BLOB 이미지로 저장합니다. "사진"이 웹 페이지의 다른 열을 렌더링하는 것보다 이미지의 내 열인 경우 (예 : "render.column_name") 잘 동작합니다. 그러나 "render.photo"와 같은 이미지의 경우 DB는 내 웹 페이지에서 "jpa.blob ....."과 같은 것을 반환합니다. DB에 저장된이 이미지를 표시하는 방법을 누군가가 도와 줄 수 있습니까?Play 1.2.4 프레임 워크에 BLOB 이미지를 표시합니다.

답변

3

이미지 데이터를 제공하려면 별도의 컨트롤러 방법이 필요합니다. 컨트롤러는 파일에 대한 메타 정보 즉, mime-type을 사용자 정의 엔티티 FileStore에 가지고 있다고 가정 할 때, 이와 같이 보일 수 있습니다.

<img src="@{ShowFile.render(image.id)}" /> 
: 사용자가 img 태그을 사용하여 그 방법에 링크거야 페이지에서

public class ShowFile extends Controller { 
    public static void render(String id) { 
     FileStore fs = // fetch the file out of the DB using the id 

     notFoundIfNull(fs); 

     response.setContentTypeIfNotSet(fs.mimeType); 
     response.setHeader("Cache-Control", "public, max-age=31536000"); 
     renderBinary(new ByteArrayInputStream(fs.content), fs.content.length); 
    } 
} 

관련 문제