Advertisement
Chilcano

uploadMultiFile1_uploadMultipleFile1.java

Jun 11th, 2014
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.94 KB | None | 0 0
  1. package info.intix.samples;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.IOException;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Calendar;
  8. import java.util.Enumeration;
  9. import java.util.HashMap;
  10. import java.util.LinkedHashMap;
  11. import java.util.Map;
  12.  
  13. import javax.portlet.ActionRequest;
  14. import javax.portlet.ActionResponse;
  15. import javax.portlet.PortletException;
  16. import javax.portlet.RenderRequest;
  17. import javax.portlet.RenderResponse;
  18.  
  19. import com.liferay.portal.kernel.upload.UploadPortletRequest;
  20. import com.liferay.portal.kernel.util.FileUtil;
  21. import com.liferay.portal.kernel.util.MimeTypesUtil;
  22. import com.liferay.portal.kernel.util.StringPool;
  23. import com.liferay.portal.kernel.util.Validator;
  24. import com.liferay.portal.service.ServiceContext;
  25. import com.liferay.portal.service.ServiceContextFactory;
  26. import com.liferay.portal.theme.ThemeDisplay;
  27. import com.liferay.portal.util.PortalUtil;
  28. import com.liferay.portlet.documentlibrary.model.DLFileEntry;
  29. import com.liferay.portlet.documentlibrary.model.DLFileEntryTypeConstants;
  30. import com.liferay.portlet.documentlibrary.model.DLFolder;
  31. import com.liferay.portlet.documentlibrary.service.DLFileEntryServiceUtil;
  32. import com.liferay.portlet.documentlibrary.service.DLFolderLocalServiceUtil;
  33. import com.liferay.portlet.dynamicdatamapping.storage.Fields;
  34.  
  35. public class uploadMultipleFile1 extends DefaultPortlet {
  36.    
  37.     @Override
  38.     public void doView(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException {      
  39.         _log.info("---> doView()");
  40.         super.doView(renderRequest, renderResponse);
  41.     }
  42.    
  43.     public void uploadMultipleFilesActionMethod (ActionRequest request, ActionResponse response) throws PortletException, IOException {
  44.         _log.info("---> uploadMultipleFilesActionMethod() - *begin* -");
  45.         UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(request);
  46.         File tempFile;
  47.        
  48.         Map<String, File> fileMap = new LinkedHashMap<String, File>();
  49.         Enumeration<String> paramEnum = uploadRequest.getParameterNames();
  50.        
  51.         while (paramEnum.hasMoreElements()) {
  52.             String parameter = paramEnum.nextElement();
  53.             if (parameter.startsWith("uploadFileField")) {
  54.                 tempFile = uploadRequest.getFile(parameter);
  55.                 tempFile = renameFileName(tempFile, uploadRequest, parameter);
  56.                 if (tempFile != null) {
  57.                     fileMap.put(parameter, tempFile);
  58.                 }
  59.             }
  60.         }
  61.         for (Map.Entry<String, File> entry : fileMap.entrySet()) {
  62.             singleFileUpload(request, response, entry.getValue());
  63.         }
  64.     }
  65.        
  66.     public File renameFileName (File sourceFile, UploadPortletRequest uploadRequest, String paramName) throws IOException {
  67.         _log.info("---> renameFileName() - *begin* -");
  68.         File destination = null;
  69.         String path = sourceFile.getPath();
  70.         path = path.substring(0, path.lastIndexOf(StringPool.BACK_SLASH) + 1);
  71.         String fileNm = uploadRequest.getFileName(paramName);
  72.        
  73.         if (Validator.isNotNull(fileNm)) {
  74.             path = path.concat(fileNm);
  75.             destination = new File(path);
  76.             FileUtil.copyFile(sourceFile, destination);
  77.             _log.info("---> renameFileName(): copyFile " + sourceFile.getPath() + ">" + sourceFile.getName() + " To " + destination.getPath() + ">" + destination.getName());
  78.             FileUtil.delete(sourceFile);
  79.             _log.info("---> renameFileName(): deleteFile " + sourceFile.getPath() + ">" + sourceFile.getName());
  80.         }
  81.         return destination;
  82.     }
  83.    
  84.     public void singleFileUpload (ActionRequest actionRequest, ActionResponse actionResponse, File file) {
  85.         _log.info("---> singleFileUpload() - *begin* -");
  86.         ThemeDisplay _themeDisplay = getThemeDisplay(actionRequest);
  87.         DLFileEntry fileEntry = null;
  88.         String strPrefixFileName = "tmp";
  89.         String strFolderName = "TestFolder";
  90.         String title = strPrefixFileName + StringPool.UNDERLINE + file.getName();
  91.         String strTimeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
  92.         long groupId = _themeDisplay.getScopeGroupId();
  93.         try {
  94.             DLFolder dlFolder = DLFolderLocalServiceUtil.getFolder(groupId, 0, strFolderName);
  95.             ServiceContext serviceContext = ServiceContextFactory.getInstance(DLFileEntry.class.getName(), actionRequest);
  96.  
  97.             long repositoryId = dlFolder.getRepositoryId();
  98.             String mimeType =  MimeTypesUtil.getContentType(file); // "image/jpeg";
  99.             String description = "Subido por @Chilcano ";
  100.             String changeLog = "Subido el " + strTimeStamp;
  101.             long fileEntryTypeId = DLFileEntryTypeConstants.FILE_ENTRY_TYPE_ID_BASIC_DOCUMENT;
  102.             Map<String, Fields> fieldsMap = new HashMap<String, Fields>();
  103.             FileInputStream is = new FileInputStream(file);
  104.             long size = file.length();
  105.            
  106.             fileEntry = DLFileEntryServiceUtil.addFileEntry(
  107.                     groupId,
  108.                     repositoryId,
  109.                     dlFolder.getFolderId(),
  110.                     file.getName(),
  111.                     mimeType,
  112.                     title,
  113.                     description,
  114.                     changeLog,
  115.                     fileEntryTypeId,
  116.                     fieldsMap,
  117.                     file,
  118.                     is,
  119.                     size,
  120.                     serviceContext);
  121.             _log.info("---> File uploaded to DL successfully! -> folder: " + dlFolder.getPath() + ", file: " + file.getName());
  122.         }  catch (com.liferay.portlet.documentlibrary.DuplicateFileException dfe) {
  123.             _log.info("---> File already was uploaded days ago! -> folder: " + strFolderName + ", file: " + file.getName());           
  124.         } catch (Exception e) {
  125.             _log.error("---> Error while adding file : " + e.getMessage());
  126.             e.printStackTrace();
  127.         }
  128.     }
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement