【问题标题】:Cannot render blob as image in grails 2.1无法在 grails 2.1 中将 blob 渲染为图像
【发布时间】:2013-04-29 02:46:16
【问题描述】:

我正在尝试从 gsp 渲染上传的图像,但没有成功。我有这个来渲染图像..有什么问题?

//domain-class
class Something {
    ...
    byte[] image
}

//controller
def displayImage(){
    def something = Something.get(id)
    response.contentType = 'image/jpeg'
    response.outputStream << something?.image
    response.outputStream.flush()
}

//gsp
<img src="${createLink(action:'displayImage',  id:something?.id)}" />

我已经把控制器改成这样了

displayImage(){
    def something = Something.get(params.id)
    ........
}

我没有得到异常,但也没有显示图像。我不知道这是否与 ContentType 或我必须指定的任何其他事情有关。有什么想法吗??

【问题讨论】:

    标签: image grails controller render


    【解决方案1】:
    def displayImage(){
        Photo photo = Photo.get(1)
        response.setHeader("Content-disposition", "attachment; filename=${photo?.name}")
        response.contentType = photo?.type
        response.outputStream << new File(photo?.path).getBytes()
        response.outputStream.flush()
        return;
    }
    

    【讨论】:

      【解决方案2】:

      试试这个:

      def displayImage(){
      def something = Something.get( params.id )
      byte[] image = something.image
      response.outputStream << image
      }
      

      【讨论】:

      【解决方案3】:

      您需要采用以下任一方法:

      def displayImage(){
          def something = Something.get(params.id)
          ........
      }
      

      def displayImage(Long id){
          .....
      }
      

      控制器自动绑定params 而不是id。如果您在进行此修改后也遇到异常,请将其添加到问题中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-17
        • 1970-01-01
        • 2019-01-25
        • 1970-01-01
        • 2022-07-29
        • 1970-01-01
        • 2012-08-14
        • 1970-01-01
        相关资源
        最近更新 更多