All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.leancloud.utils.FileUtil Maven / Gradle / Ivy

package cn.leancloud.utils;

import cn.leancloud.LCFile;

import java.util.regex.Pattern;

public class FileUtil {
  public static final int DEFAULT_FILE_KEY_LEN = 40;
  public static final String DEFAULT_MIME_TYPE = "application/octet-stream";

  public interface MimeTypeDetector {
    String getMimeTypeFromUrl(String url);
    String getMimeTypeFromPath(String filePath);
    String getMimeTypeFromExtension(String extension);
  }
  private static MimeTypeDetector detector = new DefaultMimeTypeDetector();
  public static void config(MimeTypeDetector mimeTypeDetector) {
    detector = mimeTypeDetector;
  }

  public static String getExtensionFromFilename(String filename) {
    if (!StringUtil.isEmpty(filename) && Pattern.matches("[a-zA-Z_0-9\\.\\-\\(\\)\\%]+", filename)) {
      int dotPos = filename.lastIndexOf('.');
      if (0 <= dotPos) {
        return filename.substring(dotPos + 1);
      }
    }
    return "";
  }

  public static String getFileMimeType(LCFile avFile) {
    String fileName = avFile.getName();
    String fileUrl = avFile.getUrl();
    String mimeType = null;
    if (!StringUtil.isEmpty(fileName)) {
      mimeType = getMimeTypeFromFilename(fileName);
    } else if (!StringUtil.isEmpty(fileUrl)) {
      mimeType = getMimeTypeFromUrl(fileUrl);
    }
    if (StringUtil.isEmpty(mimeType)) {
      mimeType = DEFAULT_MIME_TYPE;
    }
    return mimeType;
  }

  public static String getMimeTypeFromFilename(String fileName) {
    String extension = getExtensionFromFilename(fileName);
    if (!StringUtil.isEmpty(extension)) {
      String result = detector.getMimeTypeFromExtension(extension);
      return null != result? result : "";
    }
    return "";
  }

  public static String getMimeTypeFromPath(String localPath) {
    if (!StringUtil.isEmpty(localPath)) {
      String result = detector.getMimeTypeFromPath(localPath);
      return null != result? result : "";
    }
    return "";
  }

  public static String getMimeTypeFromUrl(String url) {
    if (!StringUtil.isEmpty(url)) {
      String result = detector.getMimeTypeFromUrl(url);
      return null != result? result : "";
    }
    return "";
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy