Problem with form enctype="multipart/form-data"

thumbnail
تم تعديل Richard Kosegi منذ 13 سنوات من الدقائق. New Member المشاركات: 19 تاريخ الإنضمام: 5‏/9‏/11 المشاركات الحديثة
Hi liferay folks,

I have problem with such form.When I add enctype="multipart/form-data" to allow file uploads,
GetterUtil.getLong(actionRequest.getParameter("itemId")) returns allways zero (also title is empty).

Without enctype it works just fine, but I can not upload file.

What I'm missing in my code?

edit_item.jsp

<%
long itemId = 10;
String title = "Test";
%>

<liferay-portlet:actionurl name="updateItem" var="updateItemURL">
</liferay-portlet:actionurl>

	<aui:form action="<%= updateItemURL %>" method="post" name="fm" enctype="multipart/form-data">
		<aui:input name="itemId" type="hidden" value="<%= String.valueOf(itemId) %>" />
                <aui:input name="itemLogo" type="file" label="stock.item.label.file" />
		<aui:button-row>
			<aui:button class="aui-button-input" type="submit" value="<%= title  %>" />
		</aui:button-row>			
	</aui:form>


StockPortlet.java

public void updateItem(ActionRequest actionRequest, ActionResponse actionResponse)
			throws IOException, PortletException {
		
		actionResponse.setRenderParameter("jspPage", "/jsp/stock/view_items.jsp");

		ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
		String title = GetterUtil.getString(actionRequest.getParameter("title"));
		long itemId = GetterUtil.getLong(actionRequest.getParameter("itemId"));

        }

thumbnail
تم تعديل Richard Kosegi منذ 13 سنوات من الدقائق. New Member المشاركات: 19 تاريخ الإنضمام: 5‏/9‏/11 المشاركات الحديثة
OK, I figure it out.

I need to use this:

UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest);
long itemId = ParamUtil.getLong(uploadRequest,"itemId");

instead of

long itemId = GetterUtil.getLong(actionRequest.getParameter("itemId"));
تم تعديل josmar javier Alarcon Bothia منذ 13 سنوات من الدقائق. New Member المشاركات: 6 تاريخ الإنضمام: 11‏/2‏/13 المشاركات الحديثة
good morning, hey I have the same problem, implement what you commented on the UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest (ActionRequest), but I want to take the value of a text box, you know this to be due or q can happen ?
thumbnail
تم تعديل Manish Yadav منذ 13 سنوات من الدقائق. Expert المشاركات: 493 تاريخ الإنضمام: 26‏/5‏/12 المشاركات الحديثة
Hi Bothia
Might be this code will help you

JSP

public void sendEmail(ActionRequest request, ActionResponse response) {
   UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(request);
   File file = uploadRequest.getFile("file");
   String email = ParamUtil.getString(uploadRequest, "fromemail");
}
تم تعديل giacomo savino منذ 12 سنوات من الدقائق. Junior Member المشاركات: 37 تاريخ الإنضمام: 17‏/6‏/11 المشاركات الحديثة
Manish Yadav:
Hi Bothia
Might be this code will help you

JSP

public void sendEmail(ActionRequest request, ActionResponse response) {
   UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(request);
   File file = uploadRequest.getFile("file");
   String email = ParamUtil.getString(uploadRequest, "fromemail");
}



Thank you
thumbnail
تم تعديل Asif Billa منذ 11 سنوات من الدقائق. New Member المشاركات: 15 تاريخ الإنضمام: 4‏/5‏/15 المشاركات الحديثة
Thanks Richard,

I was facing the same problem.
I applied your approach and it get solved. emoticon