0

我有一个模板,其中有一些来自文件系统的图像,另一些来自项目图像文件夹。

来自我的 grails 应用程序的 images 文件夹的模板中的图像完美地显示在 doc 文件中。我正在使用下面的代码来渲染这些图像:

<img src="${g.resource(dir: 'images', file: 'phone-1.gif', absolute: true)}"/>

但我有一个来自文件系统(/opt/profileImages 文件夹)的图像。使用以下代码在模板中呈现此图像:

看法:

<g:img uri="${g.createLink(controller: 'personalDetail', action: 'showUserProfileImage', absolute: true)}"/>

控制器:

def showUserProfileImage() {
    User user = springSecurityService.currentUser as User
    String profilePicturePath = "${grailsApplication.config.profilePictureDirectoryPath}/${user?.profilePicture?.fileName}"
    File file = new File(profilePicturePath)
    def img = file.bytes
    response.contentType = user?.profilePicture?.mimeType
    response.outputStream << img
    response.outputStream.flush()
}

这工作正常,在浏览器以及我使用 grails 渲染插件下载的 pdf 中显示配置文件图像。

但问题是 .doc 格式的文件。当我以 doc 格式下载模板时,不会显示图像。

截屏:

在此处输入图像描述

有人可以告诉我我错在哪里吗?

或者有没有其他方法可以做到这一点?

4

2 回答 2

1

在这里,您尝试从应用程序上下文中访问图像 src。所以你的来源应该是这样的。

<g:img uri="${profilePocturePath}" width="93px" height="100px"/>

参考这个

<mvc:resources mapping="/images/**" location="file:/absolute/path/to/image/dir"/> 
于 2013-04-09T09:34:06.680 回答
0

Kanwal Nain Singh解决方案仅在服务器在本地运行时才有效,但如果我从远程下载 doc 格式的模板,则图像再次丢失。问题是本地机器(/opt/profileImages 文件夹)中的文档搜索图像。

以下代码运行良好:

行动:

def showUserProfileImage() {
    String profilePicturePath = "${grailsApplication.config.profilePictureDirectoryPath}/${params.id}"
    File file = new File(profilePicturePath)
    response.contentType = URLConnection.guessContentTypeFromName(file.getName())
    response.outputStream << file.bytes
    response.outputStream.flush()
}

标签:

<g:img uri="${grailsApplication.config.grails.serverURL}/user/showUserProfileImage/${userImageName}"/>
于 2013-09-19T18:24:09.037 回答