Image Grails控制器:如何从字节数组渲染图像
我有byte array byteImg,但我想从byte array在控制器jpeg中渲染:Image Grails控制器:如何从字节数组渲染图像,image,grails,bytearray,httpbuilder,Image,Grails,Bytearray,Httpbuilder,我有byte array byteImg,但我想从byte array在控制器jpeg中渲染: def getSelfie = new HTTPBuilder() getSelfie.request(fullSelfieUrl, GET, JSON) { req -> headers.'X-DreamFactory-Session-Token' = session_id headers.'X-DreamFactory-Application-
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'
}
}
怎么做?非常感谢我还没有测试过它,但根据这一点,它应该可以工作:
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 }
}
def getSelfie(){
def http=新的AsyncHTTPBuilder(
游泳池规模:4,
uri:fullSelfieUrl,
contentType:contentType.JSON)
def result=http.get(){resp,json->json.selfie.bytes}
而(!result.done)Thread.sleep 1000
def bytes=result.get()
response.setHeader'Content disposition',“inline;filename=someName.jpg”
response.setHeader“内容类型”、“图像/jpg”
response.outputStream.withStream{这是驻留在控制器操作中的代码吗?是的,是控制器操作中的代码