grails - 如何使用 TagLib 将字节数组(Blob)呈现为图像

标签 grails groovy

如何使用自定义标签渲染存储在数据库中的图像文件(Blob),我曾经渲染过 Logo ,但图像正在崩溃,输出是字节数组。

这是我尝试过的:

def logo = { attrs, body ->
    if(session?.companyId && session?.companyId != 'null'){
        Company company = Company.findById(session?.companyId)
        if (!company || !company?.logo) {
            println "No response..."
            out <<"<img src='/cdc/static/images/logo.png' width='150' height='70' />"
        }
        else{
            println "Writing..."
            out << "<img src='"
            out << company?.logo
            out << "' width='150' height='70' />"
        }
    }
    else{
        println "No response..."
        //out <<"<img src='/cdc/static/images/logo.png' width='150' height='70' />"
    }
}

输出如下:

enter image description here

enter image description here

公司?.logo 呈现为 图片 而不是 字节数组 ?

最佳答案

听起来您想提供 data URI , 基本上。为此,您需要以下内容:

src="data:img/png;base64,xxx"

其中“xxx”是base64格式的数据。

例如,使用 this public domain base64 library :
out << "<img src='data:img/png;base64,"
out << Base64.encode(company?.logo)
out << "' width='150' height='70' />"

关于grails - 如何使用 TagLib 将字节数组(Blob)呈现为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24278053/

相关文章:

authentication - Spring-security/Grails 应用程序 - 未调用自定义 WebSecurity 配置

grails - 向用户发送反馈以在Grails中进行长期运行?

gradle - 如何根据现有插件向子项目添加插件?

git - 如何使用 Groovy 脚本执行 Git checkout ?

grails - 在控制台中运行任何GRAILS COMMAND时遇到错误{CMD}

grails - 查找今天更新的域实例

grails - 应该使用 toString() 方法来显示 Grails 中的对象吗?

grails - 如何使组合框表示的Grails中的字段成为可选字段?

grails - 根据查询参数过滤搜索结果

grails - grails-org.hibernate.QueryException(无法解析属性)