`
billy_zh
  • 浏览: 61935 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

liferay中的图片处理

阅读更多

一、图片显示

启动liferay或浏览liferay官方网站,查看任一图片的链接可看到如下形式的url:
http://www.liferay.com/image/journal/article?img_id=FRONT-PAGE-NEWS-FEATURES.image1&version=1.0
看到这样的url, 大概都会猜想图片数据是否存在数据库中,事实确是如此。

在web.xml中可以找到image的servlet映射
 <servlet></servlet>
 〈servlet〉
    〈servlet-name〉ImageServlet〈/servlet-name〉
    〈display-name〉ImageServlet〈/display-name〉
    〈servlet-class〉com.liferay.portal.servlet.ImageServlet〈/servlet-class〉
    〈load-on-startup〉5〈/load-on-startup〉
 〈/servlet〉
 〈servlet-mapping〉
    〈servlet-name〉ImageServlet〈/servlet-name〉
    〈url-pattern〉/image/*〈/url-pattern〉
 〈/servlet-mapping〉 

ImageServlet中的代码很简单,它通过img_id从数据表中读取图片数据,然后输出到OutputStream上,
liferay中定义了一个ImageService组件,它用来处理image的读取,更新及删除操作。

二、图片上传

通过liferay的工具类,可以很容易的实现图片的上传处理,

  UploadPortletRequest uploadReq = PortalUtil.getUploadPortletRequest(req);
  File file = uploadReq.getFile(name);  // 上传表单控件的名称;

  byte[] bytes = FileUtil.getBytes(file);
 
  if ((bytes != null) && (bytes.length > 0)) {
        String imageId = "yourimageid";  // 要小心名称重复的问题;
 ImageLocalServiceUtil.updateImage(imageId, bytes);
  }

 保存后就能通过 /image/myModule?img_id=yourimageid 来显示图片了;

相关链接:
使用liferay中的struts+tiles来开发portlet(一)
Liferay中外部war方式整合portlet的处理流程

 

分享到:
评论

相关推荐

    Liferay6.0开发指南

    - **重用现有Web应用**:对于已有的Web应用,可以通过特定配置使其成为Liferay中的Portlet或Gadget。 ##### 2. 技术支持 Liferay 6.0 支持以下技术栈: - **Java**:主要开发语言。 - **JavaScript/Ajax**:前端...

    liferay相关的代码

    通过深入源码,我们可以学习到如何在Liferay中创建portlet、theme、布局、服务等组件,以及如何处理权限、国际化和缓存等问题。此外,Liferay还使用了Hibernate进行持久化,了解这部分源码能帮助我们更好地进行...

    liferay-portal详解

    门户服务器是 Liferay Portal 的入口,负责处理用户请求和响应。 Portal 规范 Liferay Portal 支持多种portal 规范,包括 JSR168 和 WSRP。JSR168 是一个 Java 规范, 定义了 portal 的架构和portlet 的生命周期。...

    liferay 6.0.5 api

    在Liferay 6.0.5版本中,API文档是开发者理解和操作Liferay平台的关键资源。 Liferay API 包含了大量用于创建自定义portlet、主题、布局、服务以及其他功能的接口和类。以下是一些主要的Liferay API模块及其关键...

    Liferay7门户集成Activiti BPM上传文件部署流程模板

    在IT行业中,企业级应用常常需要处理复杂的业务流程管理,这就是Business Process Management(BPM)系统的作用。Liferay是一款开源的企业级门户平台,而Activiti则是一个流行的工作流引擎,常用于实现BPM功能。本...

    liferay-6.2-sdk

    在Liferay 6.2中,你可以使用JavaServer Faces (JSF)、Velocity、FreeMarker或者直接使用JSP来开发portlet。Portlet需要实现`Portlet`接口,并处理`ActionRequest`和`RenderRequest`,以及相应的响应。 **4. 主题...

    Liferay Portal 二次开发指南

    在Liferay中,开发者可以访问多个内置对象,如`Request`和`Response`用于处理HTTP请求和响应,`PortletConfig`用于获取Portlet的配置信息,`Session`用于存储会话数据,`Preference`用于管理用户偏好设置。...

    liferay portal模板开发文档

    - 对于大型项目,考虑使用压缩工具处理 CSS 和 JS 文件,减少加载时间。 - 合理利用缓存策略,提高访问速度。 - **安全性** - 确保所有外部资源来源可靠,避免引入恶意代码。 - 对用户输入进行验证和过滤,防止...

    liferay vm

    1. **Liferay Portal学习笔记之(五):开发主题风格theme**:这篇文章可能介绍了如何在Liferay中创建和修改主题,包括选择合适的主题框架,编辑CSS和图片资源,以及理解Liferay中的主题层次结构,以实现定制化的...

    liferay message

    【标题】:“Liferay Message”通常指的是Liferay Portal平台中的消息传递系统,它是一个关键的组件,用于在系统内不同部分之间以及用户之间传递信息。Liferay Message Bus(消息总线)是实现这一功能的核心技术。 ...

    利用Liferay开发portal应用(插件)

    在IT行业中,Liferay是一款广泛使用的开源企业级Portal框架,它提供了一个强大的平台来构建、管理和部署Web应用程序。本文将围绕“利用Liferay开发portal应用(插件)”这一主题,结合给定的文件信息,深入讲解如何在...

    图片批量上传demo

    通过分析和实现这个"图片批量上传demo",开发者能够深入理解Liferay中文件处理和portlet开发的细节,同时也能提升在实际项目中的应用能力。此示例不仅适用于学习,也可以直接作为项目中图片上传功能的基础。在实践中...

    liferay-demo-modules

    在 Liferay 中,OSGi 模块被称为服务包(Service Packages)或捆绑包(Bundles),它们可以包含业务逻辑、UI组件、数据访问对象等。"liferay-demo-modules-master" 压缩包很可能是包含这个项目源代码的主分支。 在...

    Liferay:Liferay 演示和片段的存储库

    在这个存储库中,开发者可以学习到如何配置portlet的生命周期方法,如init()、render()等,以及如何处理portlet的事件和动作请求。此外,还会接触到Liferay的portlet上下文、主题和布局模板的概念。对于更高级的用法...

    liferay-faces

    由于此仓库不再处于活动状态,可能意味着它的功能已被包含在 Liferay 的其他更新项目中,或者其组件已被整合到最新的 Liferay 开发流程中。 【标签】"Java" 指出 Liferay Faces 是基于 Java 语言开发的,特别是利用...

    Portlet 案例项目

    在这个“Portlet案例项目”中,我们将深入探讨Portlet开发以及如何在Liferay环境中部署和使用它们。 首先,了解Portlet的基本概念至关重要。Portlet是一种Java Web组件,遵循portlet规范(如JSR 286或JSR 168),它...

    LiferayPortal二次开发指南

    在Liferay Portal的二次开发中,首先要理解的是Liferay Portal的核心概念。Liferay Portal是一个开放源码的企业级门户平台,它提供了多租户支持、角色管理和权限控制,以及灵活的内容管理功能。开发者可以通过创建...

Global site tag (gtag.js) - Google Analytics