我正在尝试在liferay的Web表单portlet中添加一个字段来上传文件。目前我能够在我的表单中添加此字段,但无法在服务器/提到的位置获取附加文件。我得到一个空指针异常。以下是我在4个Web表单portlet文件中所做的更改。
<aui:option selected='<%= fieldType.equals("file") %>' value="file">
<liferay-ui:message key="file" /></aui:option>
<c:when test='<%= fieldType.equals("file") %>'>
<tr>
<td class="order-table-label">
<label><%= HtmlUtil.escape(fieldLabel) %></label>
</td>
<td>
<aui:input cssClass='<%= fieldOptional ? "optional" : StringPool.BLANK
%>' label="" name="<%= fieldName %>" type="file" value="
<%=HtmlUtil.escape(fieldValue) %>"/>
</td>
</tr>
</c:when>
boolean isFileUpload = false;
if("file".equals(fieldType))
{
isFileUpload = true;
}
preferences.setValue("isFileUpload" + i, String.valueOf(isFileUpload));
WebFormPortlet.java
UploadPortletRequest uploadRequest =
Portalutil.getUploadPortletRequest(actionRequest);
File uploadedFile = uploadRequest.getFile("file");
String sourcefileName = uploadRequest.getFileName(uploadedFile.getName());
(Throws NULL pointer exception on this line)
File folder = new File("\tmp\uploadedfile");
File filepath = new File(folder.getAbsolutePath() + File.seperator +
sourcefileName);
FileUtils.copyFile(uploadedFile ,filepath);
答案 0 :(得分:0)
我会将文件存储在文档库中而不是tmp路径中,这实际上与门户网站本身的范围完全不同。
你需要portlet的邮件功能吗?我不认为您的自定义将适用于此用例
看起来npe声明请求中没有文件,或者没有该名称,您是否已经查看了该请求?