Как сохранить изображение в байтовом массиве и вернуть байтовый массив в изображение в Grails?

я хотел сохранить изображение в массиве байтов.. и сохранить в базе данных 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 и не может получить файл изображения.


person SAGAR MANE    schedule 11.10.2013    source источник
comment
не уверен, что это правильный массив байтов -› вы проверили? не удалось получить файл изображения -› вы проверили код поиска?   -  person Philipp    schedule 11.10.2013
comment
есть ли какой-либо другой вариант для массива байтов.. потому что я видел, что большинство людей сохраняют изображение в массиве байтов... даже я не уверен.. вы поможете мне... сохранить изображение в mongoDb, кроме строкового пути ..   -  person SAGAR MANE    schedule 11.10.2013
comment
Я пытаюсь, но ты не сотрудничаешь.   -  person Philipp    schedule 11.10.2013
comment
Извините.. Подскажите, пожалуйста, как сохранить изображение? если у вас есть другой способ сделать это... пожалуйста, скажите мне.. я постараюсь сделать так, как вы   -  person SAGAR MANE    schedule 11.10.2013
comment
Я не могу помочь вам, когда вы продолжаете игнорировать мой первый комментарий.   -  person Philipp    schedule 11.10.2013
comment
1. я проверил в mongoDb.. данные сохраняются в байтовом формате... [844059]: FF-D8-FF-E1-00 ... 13-F5-FF-00-FF-D9 в этом формате сохраняет файл изображения в моноБД   -  person SAGAR MANE    schedule 11.10.2013
comment
давайте продолжим обсуждение в чате   -  person SAGAR MANE    schedule 11.10.2013
comment
Вы смотрели GridFS для сохранения больших файлов (например, изображений) в MongoDB? docs.mongodb.org/manual/core/gridfs   -  person Trisha    schedule 23.10.2013


Ответы (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
    }
person john Smith    schedule 13.10.2013