0

画像をバイト配列に保存し、mongoDb データベースに保存し、バイト配列を画像ファイルに戻し、.GSP ページに表示したかった

ドメイン

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に保存され、画像ファイルを取得できないかどうかわかりません

4

1 に答える 1

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
    }
于 2013-10-13T16:40:48.803 に答える