com.liferay.portlet.RenderRequestImpl reqImpl = (com.liferay.portlet.RenderRequestImpl) req;
HttpServletRequest httpReq = reqImpl.getHttpServletRequest();
HttpSession session = httpReq.getSession();
UploadPortletRequest uploadReq = PortalUtil.getUploadPortletRequest(req);
String parent = ParamUtil.getString(req, "parent");
//parent folder
Folder folder = (Folder) APILocator.getFolderAPI().find(parent, user, false);
String hostId=folder.getHostId();
boolean isRootHost=APILocator.getFolderAPI().findSystemFolder().equals(folder);
if(isRootHost)
hostId=(String)session.getAttribute(com.dotmarketing.util.WebKeys.CMS_SELECTED_HOST_ID);
Host host=APILocator.getHostAPI().find(hostId, user, false);
//check permissions
if(isRootHost) {
if(!APILocator.getPermissionAPI().doesUserHavePermission(host, PERMISSION_CAN_ADD_CHILDREN, user))
throw new ActionException(WebKeys.USER_PERMISSIONS_EXCEPTION);
}
else {
_checkUserPermissions(folder, user, PERMISSION_CAN_ADD_CHILDREN);
}
String fileNamesStr = ParamUtil.getString(req, "fileNames");
if(!UtilMethods.isSet(fileNamesStr))
throw new ActionException(LanguageUtil.get(user, "message.file_asset.alert.please.upload"));
String selectedStructureInode = ParamUtil.getString(req, "selectedStructure");
if(!UtilMethods.isSet(selectedStructureInode))
selectedStructureInode = StructureCache.getStructureByVelocityVarName(FileAssetAPI.DEFAULT_FILE_ASSET_STRUCTURE_VELOCITY_VAR_NAME).getInode();
String[] fileNamesArray = fileNamesStr.split(WebKeys.CONTENTLET_FORM_NAME_VALUE_SEPARATOR);
String customMessage = LanguageUtil.get(user, "message.file_asset.error.filename.filters") + ": ";
if(fileNamesArray.length > 2)
SessionMessages.add(req, "custommessage", LanguageUtil.get(user, "message.contentlets.batch.reindexing.background"));
boolean filterError = false;
List<String> existingFileNames = new ArrayList<String>();
for (int k=0;k<fileNamesArray.length;k++) {
try{
HibernateUtil.startTransaction();
Contentlet contentlet = new Contentlet();
contentlet.setStructureInode(selectedStructureInode);
contentlet.setHost(hostId);
contentlet.setFolder(folder.getInode());
String fileName = fileNamesArray[k];
String title = getFriendlyName(fileName);
fileName = checkMACFileName(fileName);
if(!APILocator.getFolderAPI().matchFilter(folder,fileName))
{
customMessage += fileName + ", ";
filterError = true;
continue;
}
if (fileName.length()>0) {
//sets filename for this new file
contentlet.setStringProperty("title", title);
contentlet.setStringProperty("fileName", fileName);
java.io.File uploadedFile = uploadReq.getFile(fileName);
contentlet.setBinary("fileAsset", uploadedFile);
if ( uploadedFile != null ) {
//checks if another identifier with the same name exists in the same folder