Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将图像文件发送回浏览器_Java_Spring_Servlets_Grails_Grails 2.0 - Fatal编程技术网

Java 将图像文件发送回浏览器

Java 将图像文件发送回浏览器,java,spring,servlets,grails,grails-2.0,Java,Spring,Servlets,Grails,Grails 2.0,我的应用程序有显示在我的网站上的jpg图像文件 在我的普惠制中,我: <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) d

我的应用程序有显示在我的网站上的jpg图像文件

在我的普惠制中,我:

<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()
}
def getImage(){
def item=item.get(params.id)
def file=新文件(grailsApplication.parentContext.servletContext.getRealPath(item.id))
response.setContentType(“图像/jpeg”)
response.setHeader(“内容处置”,“文件名=\”${item.id}.jpg\”)
response.setContentLength(fileBytes.size())

response.outputStream这对开发/测试很有好处(但不要忘记在关闭响应后
返回null

但千万不要在生产系统上这样做。您需要在Tomcat前面安装一个前端服务器,比如Nginx或apachehttpd服务器

我推荐Nginx。对于Nginx,您可以使用以下配置来提供此文件:

location /item/getImage/ {
    alias /path/to/directory/with/images;
}

location / {
    //proxy to your Tomcat instance
    proxy_pass http://127.0.0.1:8080; 
}

为什么我不能用Tomcat在生产环境中这样做呢?因为Tomcat在提供静态文件时要慢1000倍