Grails控制器:如何从字节数组渲染图像 [英] Grails controller: how render image from byte array

查看:227
本文介绍了Grails控制器:如何从字节数组渲染图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有字节数组byteImg但我希望在我的控制器jpeg中从字节数组中渲染:

I have byte array byteImg but I want render in my controller jpeg from byte array:

    def getSelfie = new HTTPBuilder()
    getSelfie.request(fullSelfieUrl, GET, JSON) { req ->
        headers.'X-DreamFactory-Session-Token' = session_id
        headers.'X-DreamFactory-Application-Name' = 'checkReg'
        response.success = { resp, reader ->
            assert resp.statusLine.statusCode == 200
            println "Get response: ${resp.statusLine}"
            println "Content-Type: ${resp.headers.'Content-Type'}"
            resp = reader as grails.converters.JSON

            String str = resp.toString()
            JSONObject jsonObject = new JSONObject(str)
            selfieRend = jsonObject.getString("selfie")
            byteImg = selfieRend.getBytes()

            render byteImg
            return byteImg
        }
        response.'404' = {
            println 'Information not found'
        }
    }

如何去做吧?非常感谢你

how to do it? Thank you so much

推荐答案

我还没有测试过它,但按照 wiki 这应该可行:

I haven't tested it but as per wiki this should work:

def getSelfie(){
  def http = new AsyncHTTPBuilder(
            poolSize : 4,
            uri : fullSelfieUrl,
            contentType : ContentType.JSON )

  def result = http.get() { resp, json -> json.selfie.bytes }

  while( !result.done ) Thread.sleep 1000

  def bytes = result.get()

  response.setHeader 'Content-disposition', "inline; filename=someName.jpg"
  response.setHeader 'Content-Type', 'image/jpg'
  response.outputStream.withStream{ it << bytes }
}

这篇关于Grails控制器:如何从字节数组渲染图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆