Liferay结构模板获取图像名称

时间:2015-05-13 12:59:46

标签: image templates liferay structure

我在Web内容显示的结构中有图像字段:

<root available-locales="en_US" default-locale="en_US">
<dynamic-element dataType="image" fieldNamespace="wcm" indexType="keyword" name="image_1" readOnly="false" repeatable="false" required="false" showLabel="true" type="wcm-image" width="">
    <meta-data locale="en_US">
        <entry name="label">
            <![CDATA[Image 1]]>
        </entry>
        <entry name="predefinedValue">
            <![CDATA[]]>
        </entry>
        <entry name="tip">
            <![CDATA[]]>
        </entry>
    </meta-data>
</dynamic-element>

和下一个模板:

<#if image_1.getData()?has_content >
<div><img alt="Image 1" src="${image_1.getData()}" /></div></#if>

在我选择并上传test.jpg图片后,我只有图片网址:localhost:8080 / image / journal / article?img_id = 10813&amp; t = 1431521227390。如何保存/获取上传的真实图像名称(test.jpg)。

2 个答案:

答案 0 :(得分:2)

图片的原始名称不会存储在任何地方,因此您无法在上传后获取此名称。存储在图像表中的唯一信息是:

  • 图像标识
  • modifieddate
  • 类型_
  • 高度
  • 宽度
  • 尺寸

解决方法可能是将图像类型更改为文档和媒体,并从门户网站中选择此图像。文档和媒体库中文档的URL以下列格式存储到Web内容中:

  

/文档/ [DOC组ID] / 0 / [DOC-标题] / [DOC-UUID]

以下是让您获得文档原始标题的代码的一部分

<#assign doc>
  ${image_1.getData()?string}
</#assign>

标题:$ {doc?string?split(“/”)[4]}

我认为这是一个非常好的主意,因为你不会在不同的文章中存储多个时间相同的图像。

答案 1 :(得分:0)

最后我隐藏了默认文件选择器。显示按钮,渲染点击文件选择器和标签显示我需要的文本。