2013-10-11 96 views
0

我想保存圖像中的字節數組.. 並保存到MongoDB的數據庫..並取回字節數組轉換爲圖像文件 並顯示到頁面.GSP如何保存一個圖像的字節數組並獲取字節數組在grails中的圖像?

class Profile{ 
    static mapWith = "mongo" 

    String firstname 
    String lastname 
    byte[] imgpath 
} 

控制器

def saveimage{ 
    File filepath = new File("C:\\man-of-steel-theme.jpg"); 


    def encodedData = filepath.bytes; 
    profile.imgpath=encodedData; 
    profile.save(); 
} 

在這我不知道是否正確字節數組保存到MongoDB中並沒有能夠得到的圖像文件

+1

「*不知道是正確的字節數組*」 - >你確認? 「*無法獲取圖像文件*」 - >您是否檢查檢索代碼? – Philipp

+0

是否有任何其他字節數組的選項..因爲我看到大多數人都保存在字節數組中的圖像...即使我不知道..你會指導我...保存圖像在mongoDb除字符串路徑.. –

+2

我正在嘗試,但你不合作。 – Philipp

回答

1

也許這可以是有益的給你

import java.awt.Graphics2D 
    import java.awt.image.BufferedImage 

    import javax.imageio.ImageIO 
    import javax.imageio.stream.ImageInputStream 
    import javax.imageio.stream.MemoryCacheImageInputStream 

    class xyzClass { 
     def zabcdef(){ 
      org.springframework.web.multipart.commons.CommonsMultipartFile multipartfile = request.getFile('picture') 
      if (!multipartfile || multipartfile.getContentType() != 'image/jpeg') { 
       render("${message(code:'error.wrong.file.type')}: jpeg") 
       return; 
      } 

      ImageInputStream iis = new MemoryCacheImageInputStream(multipartfile.getInputStream()) 
      BufferedImage image = ImageIO.read(iis) 

      storeImage(image,"foto") 
     } 

    } 



    private storeImage(BufferedImage image, String name) { 
     ByteArrayOutputStream os = new ByteArrayOutputStream() 
     ImageIO.write(image, "jpg", os) 
     byte[] buf = os.toByteArray() 
     InputStream is = new ByteArrayInputStream(buf) 
     //store 
    } 
相關問題