// Determine the max file upload size threshold (in bytes).
int uploadedFileMaxSize = PortletConfigParam.UploadedFileMaxSize.getIntegerValue(portletConfig);
// Parse the request parameters and save all uploaded files in a map.
PortletFileUpload portletFileUpload = new PortletFileUpload(diskFileItemFactory);
portletFileUpload.setFileSizeMax(uploadedFileMaxSize);
uploadedFileMap = new HashMap<String, List<UploadedFile>>();
// FACES-271: Include name+value pairs found in the ActionRequest.
Set<Map.Entry<String, String[]>> actionRequestParameterSet = clientDataRequest.getParameterMap().entrySet();
for (Map.Entry<String, String[]> mapEntry : actionRequestParameterSet) {
String parameterName = mapEntry.getKey();
String[] parameterValues = mapEntry.getValue();
if (parameterValues.length > 0) {
for (String parameterValue : parameterValues) {
facesRequestParameterMap.addValue(parameterName, parameterValue);
}
}
}
UploadedFileFactory uploadedFileFactory = (UploadedFileFactory) FactoryExtensionFinder.getFactory(
UploadedFileFactory.class);
// Begin parsing the request for file parts:
try {
FileItemIterator fileItemIterator = null;
if (clientDataRequest instanceof ResourceRequest) {
ResourceRequest resourceRequest = (ResourceRequest) clientDataRequest;
fileItemIterator = portletFileUpload.getItemIterator(new ActionRequestAdapter(resourceRequest));
}
else {
ActionRequest actionRequest = (ActionRequest) clientDataRequest;
fileItemIterator = portletFileUpload.getItemIterator(actionRequest);
}
boolean optimizeNamespace = PortletConfigParam.OptimizePortletNamespace.getBooleanValue(portletConfig);
if (fileItemIterator != null) {