Liferay Portlet中的文件上传研究

我们已经知道了许许多多种类的处理文件上传的代码,比较典型的比如Apache大名鼎鼎的FileUpload等,当然了, Liferay为我们都考虑过了,我们可以用Liferay自带的上传文件的API来处理文件上传问题,这个核心接口就是com.liferay.portal.kernel.upload.UploadPortletRequest接口。

举个最简单的例子,比如我们要在Portlet页面上传一个文件到Portlet中,然后Portlet吧这个文件移动到别的位置:

那么,在页面上(比如config.jsp)中,我们必须用一个<input type="file">来表示一个文件上传控件:

<td> 

     <label><liferay-ui:message key="rslaunch.zipfile" /></label> 

     <div> 

             <input class="lfr-input-text" name="Zip" type="file" /> 

             <input name="<portlet:namespace /><%=Constants.CMD %>" type="hidden" value="<%=Constants.UPDATE%>" /> 

      </div> 

 </td>

然后,在我们java代码中,我们利用UploadPortletRequest接口来处理被上传的文件:

/**
  * Method used to upload the file on the target by reading the server details from the properties
  * @param actionRequest
  * @throws Exception
  */
         public static void uploadFileToDest(ActionRequest actionRequest) throws Exception{ 

                 if(LOGGER.isDebugEnabled()){
                    LOGGER.debug("FileOperationHelper : uploadFileToDest()");
              }
                 PortletPreferences preferences = PortletHelper.getPortletPreferences(actionRequest);
        String portletInstanceId = preferences.getValue(RS_LAUNCH_PORTLET_PREFERENCE_PORTLET_ID, StringPool.DOUBLE_QUOTE); 

                 String fileOriginFolder = configUtil.getProperty(RS_LAUNCH_ZIP_ORIGIN_FOLDER);
        UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest);
        String fileName = uploadRequest.getFileName(RS_LAUNCH_CONFIG_PAGE_FORM_ZIP_INPUT_NAME);
        File tempFile = uploadRequest.getFile(RS_LAUNCH_CONFIG_PAGE_FORM_ZIP_INPUT_NAME);
   ...

从这里代码可以看出来,我们在第15行获取一个UploadPortletrequest对象,然后用它的AP就可以正确的获取文件名字(16行)和获取文件对象了,接下来对于这个文件的操作就是普通的I/O操作,我们这里就略去了。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 接口
, portlet
一个
liferay portlet 开发、liferay mvcportlet、liferay portlet 跳转、liferay portlet、liferay portlet 样式,以便于您获取更多的相关知识。

时间: 2024-08-04 12:21:54

Liferay Portlet中的文件上传研究的相关文章

ASP中实现文件上传方法的研究

上传 摘要:在基于浏览器/服务器的应用环境中,在浏览器中上传各种类型的文件一直是困扰用户文件管理应用的难题之一.在HTTP中上传文件有三种机制:RFC1867,PUT和WebDAV.常用的实现方法是利用在RFC1867中引入的一个新类型:File以及ADO Stream对象.本文对上述上传方法及实现原理作了论述,并给出了具体解决实例. 关键词:ASP 组件 FILE对象 当前,基于浏览器/服务器模式的应用比较流行.当用户需要将文件传输到服务器上时,常用方法之一是运行FTP服务器并将每个用户的FT

如何在Web页面中集成文件上传功能

当前,个人主页制作非常流行.当用户开发好自己的页面时,需要将文件传输到服务器上,解决这个问题的方法之一是运行FTP服务器并将每个用户的FTP默认目录设为用户的Web主目录,这样用户就能运行FTP客户程序并上传文件到指定的 Web目录.由于Windows NT 和 Windows98均不提供直接的基于窗口形式的FTP客户程序,用户必须懂得如何使用基于命令行的FTP客户,或掌握一种新的基于窗口形式的FTP客户程序.因此,这种解决方案仅对熟悉FTP且富有经验的用户来说是可行的. 如果我们能把文件上传功

在webclass中使用文件上传功能

web|上传 在webclass中使用文件上传功能 webclass实例:http://www.shinco.com/jjx/wcnews/news.asp许多文件上传组件并不能在vb中正常使用,我测试了chinaasp fileup,aspSmartupload,aspupload enterprise,inotesupload等组件,均不能正常使用.其主要原因,是因为在vb中没有促发组件的OnStartPage过程.我们无法改写这些组件,所以要自己编码来解决这个问题,记得以前有网友谈过这个问

IIS 7 中设置文件上传大小限制设置方法

在IIS 6.0中设置文件上传大小的方法,就是配置如下节点: <system.web> <httpRuntime executionTimeout="72000" maxRequestLength="2097151" /> </system.web> 但在IIS7中,设置如上设置后,不管设置多大数值,最大上传了限制为30M 还要进行如下设置才能正确: 在web.config中加入如下配置: <system.webServer

PHP中,文件上传_php实例

在PHP中,文件上传一般是通过move_uploaded_file()来实现的.  bool move_uploaded_file ( string filename, string destination )本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的).如果文件合法,则将其移动为由 destination 指定的文件.   如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_f

asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件

问题描述 asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件我现在要上传文件,但是在点击浏览的时候我想要打开一个指定的目录,然后在这个目录中选择文件..用什么方法能够实现呢?请各位大侠帮忙呀!!!!!!!!!??????????????????????????谢谢各位!!!!!!!! 解决方案 解决方案二:属于客户端程序,安全考虑的话怕不可行解决方案三:可以,将所选目录文件列出就行了,用常用的IO操作就能实现CSD

发送-java中关于文件上传的问题。

问题描述 java中关于文件上传的问题. 如果写一个java程序,向新浪的ip地址发送一份文件,结果会如何??????? 解决方案 你的请求得不到任何响应,返回一个4xx的错误. 解决方案二: 你得到的响应跟你访问网页的响应一样,不过对方不会get到你的信息,除非新浪提供了开放的接口 解决方案三: 你可以自己给你自己发送一个文件你试试看,服务器上传文件都需要对应的端口去处理FTP服务,不是随意就可以的

web中的500错误-在struts中实现文件上传,结果老出现500错误

问题描述 在struts中实现文件上传,结果老出现500错误 type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception 我struts.xml没有配错啊 解决方案 是不是后面的没写啊

python如何将windows中的文件上传到linux

问题描述 python如何将windows中的文件上传到linux 两个按钮,一个浏览文件一个上传,在上传按钮里实现将windows系统里的文件上传到linux上 linux虚拟机可以用ssh连上,想用scp命令传过去,但是scp在windows下好像用不了. 而且我看网上基本都是先连上ssh再用scp命令,这样只能从linux主机传到另一台.有什么办法可以解决吗?或者其他更好的方法 谢谢了 解决方案 参考:http://www.jb51.net/article/46282.htmhttp://