Reputation: 93
I have to pass a file from my jsp to my portlet action class (java). I created this line in my jsp..
<input type="file" name="file"/>
but when I need to pass it into my portlet I don't know how to handle it.. I was supposed to handle it by using ParamUtil.getXXX() methods, but I don't see anything that holds file data types.. it's supposed to look like this
String tin = ParamUtil.getString(actionRequest, "tin");
String surName = ParamUtil.getString(actionRequest, "surName");
String middleName = ParamUtil.getString(actionRequest, "middleName");
String givenName = ParamUtil.getString(actionRequest, "givenName");
String nameExt = ParamUtil.getString(actionRequest, "nameExt");
File file = ParamUtil. **<----- this is where I'm stuck :(**
Date birthDate = ParamUtil.getDate(actionRequest, "birthdate", DateFormat.getInstance());
String birthPlace = ParamUtil.getString(actionRequest, "birthplace");
String citizenship = ParamUtil.getString(actionRequest, "citizenship");
String civilStatus = ParamUtil.getString(actionRequest, "civilstatus");
String fatherFName = ParamUtil.getString(actionRequest, "fgivenName");
String fatherMName = ParamUtil.getString(actionRequest, "fmiddleName");
String fatherLName = ParamUtil.getString(actionRequest, "fsurName");
String motherFName = ParamUtil.getString(actionRequest, "mgivenName");
String motherMName = ParamUtil.getString(actionRequest, "mmiddleName");
String motherLName = ParamUtil.getString(actionRequest, "msurName");
String spouseFName = ParamUtil.getString(actionRequest, "sgivenName");
String spouseMName = ParamUtil.getString(actionRequest, "smiddleName");
String spouseLName = ParamUtil.getString(actionRequest, "ssurName");
String children[] = ParamUtil.getParameterValues(actionRequest, "children[]");
long pi_id = CounterLocalServiceUtil.increment();
personal_info pi = null;
pi = new personal_infoImpl();
pi = personal_infoLocalServiceUtil.createpersonal_info((int) pi_id);
pi.setTin(tin);
pi.setLname(surName);
pi.setFname(givenName);
pi.setMname(middleName);
pi.setName_ext(nameExt);
pi.setBirthDate(birthDate);
pi.setBirthplace(birthPlace);
pi.setPhoto(file); <------------ it's supposed to be saved in here.. but I'm stuck...
I haven't even tested the block of code because of this..
Upvotes: 1
Views: 683
Reputation: 1817
You should use UploadPortletRequest to get files.
This is how we are doing for list of files.
JSP page:
<form id="fileupload" method="POST" enctype="multipart/form-data" class="uploader-files pull-left">
<input type="file" name="fileUpload" multiple id="ofxUploadFile" class="file-uploader" />
....
....
</form>
Controller method:
UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest);
File[] uploadedFileWithExtension = uploadRequest.getFiles("fileUpload");
InputStream[] inputStream = uploadRequest.getFilesAsStream("fileUpload");
File[] inputStreamUploadedFile = new File[inputStream.length];
int i = 0;
for (InputStream fileObj : inputStream) {
if (Validator.isNull(fileObj)) {
inputStreamUploadedFile[i] = FileUtil.createTempFile();
} else {
inputStreamUploadedFile[i] = FileUtil.createTempFile(fileObj);
}
i++;
}
}
Upvotes: 2