Package com.dotmarketing.portlets.fileassets.ajax

Source Code of com.dotmarketing.portlets.fileassets.ajax.FileAssetAjax

package com.dotmarketing.portlets.fileassets.ajax;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.dotcms.repackage.org.directwebremoting.WebContext;
import com.dotcms.repackage.org.directwebremoting.WebContextFactory;
import com.dotmarketing.business.APILocator;
import com.dotmarketing.business.web.UserWebAPI;
import com.dotmarketing.business.web.WebAPILocator;
import com.dotmarketing.exception.DotDataException;
import com.dotmarketing.exception.DotSecurityException;
import com.dotmarketing.portlets.contentlet.model.Contentlet;
import com.dotmarketing.portlets.fileassets.business.FileAsset;
import com.dotmarketing.portlets.files.business.FileAPI;
import com.dotmarketing.util.Logger;
import com.dotmarketing.util.WebKeys;
import com.liferay.portal.PortalException;
import com.liferay.portal.SystemException;
import com.liferay.portal.model.User;

public class FileAssetAjax {

  protected FileAPI fileAPI;
  protected UserWebAPI userAPI;

  public FileAssetAjax() {
    fileAPI = APILocator.getFileAPI();
    userAPI = WebAPILocator.getUserWebAPI();
  }

  public Map<String, Object> getWorkingTextFile(String contentletInode) throws DotDataException, DotSecurityException,
  PortalException, SystemException, IOException {

    WebContext ctx = WebContextFactory.get();
    HttpServletRequest req = ctx.getHttpServletRequest();
    User user = userAPI.getLoggedInUser(req);
    boolean respectFrontendRoles = userAPI.isLoggedToFrontend(req);

    Contentlet cont  = APILocator.getContentletAPI().find(contentletInode, user, respectFrontendRoles);
    FileAsset fa = APILocator.getFileAssetAPI().fromContentlet(cont);
    Map<String, Object> map = fa.getMap();

    java.io.File fileIO = fa.getFileAsset();
    FileInputStream fios = new FileInputStream(fileIO);
    byte[] data = new byte[fios.available()];
    fios.read(data);
    String text = new String(data);

    map.put("text", text);

    return map;

  }


  public void saveFileText(String contentletInode, String newText) throws PortalException, SystemException,
  DotDataException, DotSecurityException, IOException {
    WebContext ctx = WebContextFactory.get();
    HttpServletRequest req = ctx.getHttpServletRequest();
    User user = userAPI.getLoggedInUser(req);
    boolean respectFrontendRoles = userAPI.isLoggedToFrontend(req);
    Contentlet cont  = APILocator.getContentletAPI().find(contentletInode, user, respectFrontendRoles);
    FileAsset fa = APILocator.getFileAssetAPI().fromContentlet(cont);

    java.io.File tempDir =  new java.io.File(APILocator.getFileAPI().getRealAssetPathTmpBinary() + java.io.File.separator + contentletInode.charAt(0)
          + java.io.File.separator + contentletInode.charAt(1) + java.io.File.separator + contentletInode
          + java.io.File.separator + APILocator.getFileAssetAPI().BINARY_FIELD);

    if(!tempDir.exists())
      tempDir.mkdirs();

    java.io.File fileData = new java.io.File(tempDir.getAbsoluteFile() + java.io.File.separator + WebKeys.TEMP_FILE_PREFIX + fa.getFileAsset().getName());

    fileData.deleteOnExit();
    FileOutputStream fos = null;
    try {
      fos = new FileOutputStream(fileData);
      fos.write(newText.getBytes());
    } catch(Exception e) {
      Logger.error(getClass(), "Error writing to file", e);
    }finally {
      if (fos != null)
        fos.close();
    }
  }

  public void removeTempFile(String contInode)throws PortalException, SystemException,
  DotDataException, DotSecurityException, IOException{
    WebContext ctx = WebContextFactory.get();
    HttpServletRequest req = ctx.getHttpServletRequest();
    User user = userAPI.getLoggedInUser(req);
    boolean respectFrontendRoles = userAPI.isLoggedToFrontend(req);
    Contentlet cont  = APILocator.getContentletAPI().find(contInode, user, respectFrontendRoles);
    FileAsset fa = APILocator.getFileAssetAPI().fromContentlet(cont);
    java.io.File tempFile = new java.io.File(APILocator.getFileAPI().getRealAssetPath() + java.io.File.separator + contInode.charAt(0)
        + java.io.File.separator + contInode.charAt(1) + java.io.File.separator + contInode
        + java.io.File.separator + APILocator.getFileAssetAPI().BINARY_FIELD + java.io.File.separator + WebKeys.TEMP_FILE_PREFIX + fa.getFileAsset().getName());
    if(tempFile.exists()){
      tempFile.delete();
    }
  }

}
TOP

Related Classes of com.dotmarketing.portlets.fileassets.ajax.FileAssetAjax

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.