【发布时间】:2012-06-08 04:13:39
【问题描述】:
有没有人在 Liferay 6.1 中尝试过多个文件上传。我试图以与 6.0 相同的方式进行操作,但失败得很厉害。我看到页面左上角的开始链接而不是 portlet。当我单击它并选择一些文件时,控件不会转到我的 portlet。我检查了我的 portlet.xml 并验证了 portlet-class 是否正确。这是jsp中的sn-p
<liferay-portlet:actionURL doAsUserId="<%= user.getUserId() %>" windowState="pop_up" name="uploadFile" var="uploadFileURL" >
<portlet:param name="jspPage" value="/html/fileuploadportlet/view.jsp" />
</liferay-portlet:actionURL>
<div class="lfr-dynamic-uploader">
<div class="lfr-upload-container" id="<portlet:namespace />fileUpload"></div>
</div>
<div id="<portlet:namespace/>fallback"></div>
<aui:script use="liferay-upload">
new Liferay.Upload({
allowedFileTypes: '<%= StringUtil.merge(PrefsPropsUtil.getStringArray(PropsKeys.DL_FILE_EXTENSIONS, StringPool.COMMA)) %>',
container: '#<portlet:namespace />fileUpload',
maxFileSize: <%=Long.parseLong(PrefsPropsUtil.getString(PropsKeys.DL_FILE_MAX_SIZE)) %> / 1024,
namespace:'<%=renderResponse.getNamespace()%>',
uploadFile: '<%=uploadFileURL.toString()%>',
buttonHeight: 100,
buttonText: 'BEGIN',
buttonWidth: 100,
onFileComplete: function(){alert('fileComplete');},
onUploadError: function(){alert('error');}
});
</aui:script>
这是我的 portlet 的 processAction 方法
@Override
public void processAction(ActionRequest actionRequest,
ActionResponse actionResponse) throws IOException, PortletException {
System.out.println("Something");
UploadPortletRequest uploadRequest=PortalUtil.getUploadPortletRequest(actionRequest);
File file =uploadRequest.getFile("file");
System.out.println(file.getName());
for(int i=0;i<50000;i++){
System.out.println("Something");
}
}
【问题讨论】:
-
你能告诉我们开发者控制台中发生了什么吗?
-
它说 tempFileURL 未定义 [Break On This Error] ...empFileURL['method'](tempFileURL['params'], A.bind('_formatTempFiles', instance)...
-
奇怪的错误,是JS引擎错误。是否包含所有引擎文件?
-
你能显示 Upload.js 文件吗? ypu 会改变它吗(upload.js)?
-
据我所知,我不必在我的 portlet 中包含 upload.js。它的内容应该很容易从门户获得。我没有更改upload.js。你想要来自 ROOT 的 upload.js?
标签: liferay