`

OpenCms 如何读取图片文件字节流

阅读更多

OpenCms 如何在模版里面读取图片文件字节流呢?

 

可以参考我下面这段代码:

首先是.xsd文件:

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

    <xsd:include schemaLocation="opencms://opencms-xmlcontent.xsd"/>
        
    <xsd:element name="TestNewss" type="OpenCmsTestNewss"/>
    
    <xsd:complexType name="OpenCmsTestNewss">
        <xsd:sequence>
            <xsd:element name="TestNews" type="OpenCmsTestNews" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="OpenCmsTestNews">
        <xsd:sequence>
            <xsd:element name="Title" type="OpenCmsString" />
            <xsd:element name="Date" type="OpenCmsDateTime" />            
            <xsd:element name="Text" type="OpenCmsHtml" />
            <xsd:element name="Image" type="OpenCmsVfsFile" minOccurs="1" maxOccurs="3"/>
			<xsd:element name="Wap" type="OpenCmsBoolean"/>
        </xsd:sequence>
        <xsd:attribute name="language" type="OpenCmsLocale" use="required"/>
    </xsd:complexType>

    <xsd:annotation>
        <xsd:appinfo>
            <resourcebundle name="org.opencms.testnews.workplace"/>
            <preview uri="${previewtempfile}" />
			<!-- 验证开始,验证标题(Title)不能为空 -->
            <validationrules>
                <rule element="Title" regex="^.*$"  message="${key.editor.errormessage.TestNews.mustnotempty}"/>
            <!-- 验证结束 -->
            </validationrules>
            <mappings>
                <mapping element="Title" mapto="property:Title" />
            </mappings>
            <defaults>
                <default element="Date" value="${currenttime}"/>
            </defaults>
        </xsd:appinfo>

    </xsd:annotation>  
</xsd:schema>
 可以看到image不止一个,所以就要使用cms:contentloop和cms:contentshow来获得所有图片的地址。

 

<cms:contentload collector="singleFile" param="%(opencms.uri)" editable="true">

<!-- 循环获得所有图片的src -->
<cms:contentloop element="Image">
  <c:set var="imgSrc"><cms:contentshow /></c:set>
    <%
        String imgSrc = pageContext.getAttribute("imgSrc").toString();
        imageArr.add(imgSrc);
    %>
 </cms:contentloop>
<%
CmsJspActionElement cms = new CmsJspActionElement( pageContext, request, response );
		CmsObject cmso = cms.getCmsObject();
		
//获得第一张图片的字节数组
		CmsFile file = ( CmsFile )cmso.readFile( imageArr.get(0).toString() );
		byte[] buf2 = file.getContents();
%>
 关键是: CmsFile file = ( CmsFile )cmso.readFile( imageArr.get(0).toString() ); 这一句。

 

分享到:
评论

相关推荐

    opencms

    《OpenCms开发指南》:深入理解与定制OpenCms OpenCms是一款开源的内容管理系统,旨在为企业级网站提供高效、灵活的管理解决方案。由Alkacon Software开发,OpenCms支持多语言、多站点管理和内容版本控制等功能,是...

    OpenCMS

    - **高级功能**:涉及工作流管理、多语言支持等内容,帮助用户深入了解并充分利用OpenCMS的强大功能。 - **案例研究**:通过实际案例分析,展示如何运用OpenCMS解决特定问题和实现特定目标。 #### 五、作者背景与...

    opencms 9.0.1 汉化包

    `system`目录下的文件结构可能与OpenCMS的模块结构相对应,比如`localization`子目录可能包含不同语言的翻译文件,`templates`可能有汉化的页面模板,而`classes`则可能包含汉化后的Java类。 在使用这个汉化包时,...

    opencms建站手册

    Opencms提供了灵活的工作流、权限管理、版本控制以及与各种数据库和Web服务器的集成。 1.2 环境搭建步骤 在开始使用Opencms之前,你需要搭建一个合适的开发环境。这通常包括安装Java Development Kit (JDK),配置...

    opencms9 java api

    2. **资源管理**:OpenCMS 提供了强大的资源管理功能,包括文件、图片和其他媒体资源。Java API 允许开发者对资源进行上传、下载、移动、重命名和删除操作,同时支持版本控制和访问权限设置。 3. **工作流引擎**:...

    OpenCms 内容类型模块

    "manifest.xml" 文件是 OpenCms 中一个重要的配置文件,它通常包含了模块的信息,如模块的名称、版本、依赖关系等。在 OpenCms 中,模块是代码和资源的集合,用于扩展或修改系统的功能。通过编辑 manifest.xml,...

    opencms模版

    在OpenCMS中,"system"通常是存放全局资源的地方,比如主题、样式表、JavaScript文件、图片和其他媒体资源。开发者或管理员可以在这个目录下管理全局可复用的元素,确保在整个网站中的一致性。 关于OpenCMS模板的...

    OpenCms中文文档完整版

    此外,还介绍了资源管理,包括文件和图像的上传、版本控制和权限管理。 4. **工作流管理**:OpenCms支持复杂的工作流程,允许用户定义内容审批流程。文档中会解释如何设置和定制工作流程,确保内容在发布前经过适当...

    OpenCms 7 Development(最好的OpenCms二次开发资料)

    总之,《OpenCms 7 Development》是OpenCms开发者必备的参考资料,无论你是初学者还是有经验的开发者,都能从中获取到丰富的知识和实践技巧,从而提高你在OpenCms项目上的开发效率和质量。通过深入学习,你将能够...

    OpenCms9.0.1 新鲜下载

    4. **资源管理**:所有上传的文件和图片都会被统一管理和组织,便于查找和引用。 5. **多语言支持**:除了中文,OpenCms还支持多种语言,方便搭建多语种网站。 6. **集成能力**:可以与各种外部系统集成,如电子...

    如何创建OpenCms后台管理模块

    在OpenCms中,模块是功能的容器,可以包含页面、文件、样式表、JavaScript、图片等。它们通过JAR文件实现,包含XML配置文件来定义模块的行为和结构。 3. **创建模块** - **模块命名**:首先,为你的模块选择一个...

    opencms入门指南与配置源代码

    3. 内容管理:OpenCMS提供了一个用户友好的界面,供内容编辑者创建、修改和发布文本、图片、视频等资源。你可以使用富文本编辑器进行内容编辑,同时利用版本控制功能管理不同版本的内容。 4. 工作流程:OpenCMS支持...

    OpenCms创建网站过程图解——献给OpenCms的初学者们

    OpenCms提供了强大的功能集,包括内容管理、工作流、版本控制等,非常适合企业和组织用来构建和维护其官方网站或内部平台。 对于初次接触OpenCms的用户来说,可能会遇到一些困惑,比如如何开始使用、如何创建自己的...

    opencms9 汉化包

    这些子目录中的文件可能是XML配置文件、图片、CSS样式表或者本地化语言文件(如lang.properties),它们负责替换或添加中文语言元素。 在安装和使用"opencms9 汉化包"的过程中,需要注意以下几点: 1. **备份原有...

    opencms中文用户手册

    5. **工作流管理**:讨论OpenCMS的工作流系统,用于审批和发布内容的流程。 6. **资源管理**:涵盖如何上传、组织和管理网站的文件资源,如图片、文档和链接。 7. **模块开发**:对于开发者,会提供关于如何扩展...

    opencms配置去掉2个opencms总结

    标题中的“opencms配置去掉2个opencms”指的是在OpenCms系统中,可能有用户想要移除或禁用两个特定的OpenCms组件或功能,可能是出于优化性能、减少冗余或者简化系统的考虑。OpenCms是一款开源的内容管理系统,它允许...

    opencms 内容管理入门指南

    - **下载OpenCMS**:从官方网站或其他可信源获取最新版本的OpenCMS源码或二进制包。 - **数据库准备**:根据你的需求选择合适的数据库,并创建OpenCMS所需的数据库和用户。 - **解压部署**:将下载的OpenCMS文件解压...

    opencms源码

    作为开源项目,OpenCms拥有活跃的社区,开发者可以在论坛上交流问题、分享经验,获取帮助和支持。 总结起来,OpenCms 10.0.1源码包提供了一整套内容管理解决方案,包括核心功能、开发工具和社区支持。通过深入学习...

    OpenCms中文用户手册

    9. **故障排查与日志分析**:最后,手册通常会包含一些常见问题的解决方法,以及如何解读和分析OpenCms的日志文件,以帮助用户快速定位并解决问题。 通过深入阅读OpenCms中文用户手册,无论是新手还是经验丰富的...

Global site tag (gtag.js) - Google Analytics