使用流而不是静态图像文件服务提供图像文件

时间:2013-12-23 17:24:18

标签: performance servlets grails

我有一个Grails网络应用程序。目前我正在为我的用户提供静态图像文件。我在StackOverflow上看到这篇文章讨论了一个关于将图像作为流提供的解决方案,以隐藏它的来源。我的问题是,是否有一些交易,比如在服务器上加载,因为它需要打开一个套接字才能将它流式传输给用户v.s只是将其作为静态文件提供?

// controller action
def displayGraph = {
    def img // byte array
    //...
    response.setHeader('Content-length', img.length)
    response.contentType = 'image/png' // or the appropriate image content type
    response.outputStream << img
    response.outputStream.flush()
}

然后,您可以在标签的src中访问您的图像,如下所示:

<img src="${createLink(controller: 'myController', action: 'displayGraph')}"/>

1 个答案:

答案 0 :(得分:0)

response.outputStream << img
response.outputStream.flush()

如果你的意思是:http://en.wikipedia.org/wiki/Streaming_media

,这不是流媒体

它只是使用Java OutputStream来提供响应内容 - 这是在服务器上完成的,并且响应被返回给客户端。没有插座保持打开状态。