2012-02-19 2 views
1

재생을 위해 initial-data.yml 파일을 만들려고합니다. 프레임 워크 응용 프로그램. 웹 응용 프로그램의 일부에는 프로필 사진과 같은 이미지가 포함되어 있으며이를 MySQL 데이터베이스에 BLOB로 저장하려고합니다 (모범 사례는 아니지만 파일 시스템 사용은 나중에 나옵니다). 내 YML 파일에 "테스트"이미지를 넣을 수있는 방법과 웹 응용 프로그램에서이 파일에 액세스하여 표시 할 수 있는지 궁금합니다. 어떤 도움을 주시면 감사하겠습니다. 다음은 지금까지 시도한 것입니다 : YML의이미지를 BLOB로 저장 한 다음 Play!가있는 웹 사이트에 표시하는 방법?

부 :

Picture(Picture1): 
    picture:  010001010100010101000101010001010100010101000101010001010100010101000101010001010100010101000101010001010100010101000101|image/png 

우리의 최대 절전 모드 모델은 byte[] 같은 그림이있다. 여기

#{if _post.picture} 
     <!-- display the picture --> 
     <p> Hey, a picture should go here.</p> 
     <img src="@{Application.showImage(_post.getPicture().getBinaryImage())}" alt="long islands for life"/> 
    #{/if} 

지금 나는이 방법 때문에 첫 번째 줄에 NullPointerException이 무엇입니까 getBinaryImage()

private ByteArrayInputStream getBinaryImage() { 
     try { 
      BufferedImage image = ImageIO.read(new ByteArrayInputStream(byteImage)); 
      ImageInputStream is = ImageIO.createImageInputStream(image); 
      ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
      ImageIO.write(image, "png", baos); 
      ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); 
      return bais; 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     return null; 
    } 

됩니다 : 여기

내가 HTML에 이미지에 액세스하려고하는 방법이다 image/byte []가 데이터베이스에 저장되지 않는 것 같습니다. 이 아이디어를 데이터베이스에 적절하게 저장하고 웹 페이지에 표시하는 방법은 무엇입니까?

답변

1

당신은! 진

binaryData: !!binary VGhpcyBTdHJpbmcgaXMgc3RvcmVkIGluIHlhbWwgZmlsZSB1c2luZyBiYXNlNjQ= 

이 예제를 앞에 추가 Base64로 인코딩 된 형태로 전체 바이너리 데이터를 추가해야 할 것은 플레이 프레임 워크 샘플에서입니다

samples-and-tests/just-test-cases/test/yamlTestData.yml 
관련 문제