2013-04-02 100 views
0

我有一個模板,其中一些來自文件系統,另一些來自項目圖像文件夾。未在.doc文件中呈現圖像

來自我的grails應用程序的圖像文件夾的模板中的圖像完美顯示在doc文件中。我使用下面的代碼來渲染這些圖像:

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

但是我有一個從文件系統(/選擇/ 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格式下載模板時,圖像不顯示。

截圖:

enter image description here

是否有人可以告訴我在哪裏,我錯了嗎?

還有沒有其他方法可以做到這一點?

回答

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}"/> 
1

在這裏,您試圖從應用程序上下文中訪問圖像src。 所以你的源代碼應該像這樣。

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

請參閱本

<mvc:resources mapping="/images/**" location="file:/absolute/path/to/image/dir"/>