私のアプリには、私の Web サイトに表示される jpg 画像ファイルがあります。
私のGSPで私は:
<img class="itemThumImage border-radius-top-3px" src="${createLink(controller:'item', action:'getImage', id:item.id)}" />
私の ItemConroller の getImage アクションは次のとおりです。
def getImage() {
def item = Item.get(params.id)
def file = new File(grailsApplication.parentContext.servletContext.getRealPath(item.id))
response.setContentType("image/jpeg")
response.setHeader("Content-disposition", "filename=\"${item.id}.jpg\"")
response.setContentLength(fileBytes.size())
response.outputStream << file.readBytes()
response.outputStream.close()
}
これは、画像をブラウザに送り返す良い方法ですか? 画像がヒープに読み込まれていると思います。どうにかしてこのプロセスを加速できますか? close()
最後の行に必要flush()
ですか、それとも両方ですか?