package cn.keking.config; import org.artofsolving.jodconverter.util.ConfigUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.io.File; import java.util.Arrays; import java.util.concurrent.CopyOnWriteArraySet; import java.util.Set; /** * @author: chenjh * @since: 2019/4/10 17:22 */ @Component public class ConfigConstants { public static final String GET_PREVIEW_FILE_NAME = "getPreviewFile"; public static final String GET_PREVIEW_FILE = GET_PREVIEW_FILE_NAME + "/"; public static final CharSequence UNDERLINE = "_"; static { //pdfbox兼容低版本jdk System.setProperty("sun.java2d.cmm", "sun.java2d.cmm.kcms.KcmsServiceProvider"); String folderDir = System.getProperty("user.dir")+File.separator+ConfigUtils.MAIN_DIRECTORY_NAME+File.separator+"file" + File.separator+"cache"; File file = new File(folderDir); if (!file.exists()) file.mkdirs(); } private static Boolean cacheEnabled; private static String[] simTexts = {}; private static String[] medias = {}; private static String[] convertMedias = {}; private static String mediaConvertDisable; private static String officePreviewType; private static String officePreviewSwitchDisabled; private static String ftpUsername; private static String ftpPassword; private static String ftpControlEncoding; private static String baseUrl; private static String fileDir = ConfigUtils.getHomePath() + File.separator + "file" + File.separator; private static CopyOnWriteArraySet trustHostSet; private static String pdfDownloadDisable; private static Boolean fileUploadDisable; public static final String DEFAULT_CACHE_ENABLED = "true"; public static final String DEFAULT_TXT_TYPE = "txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd"; public static final String DEFAULT_MEDIA_TYPE = "mp3,wav,mp4,flv"; public static final String DEFAULT_OFFICE_PREVIEW_TYPE = "image"; public static final String DEFAULT_OFFICE_PREVIEW_SWITCH_DISABLED = "false"; public static final String DEFAULT_FTP_USERNAME = null; public static final String DEFAULT_FTP_PASSWORD = null; public static final String DEFAULT_FTP_CONTROL_ENCODING = "UTF-8"; public static final String DEFAULT_BASE_URL = "default"; public static final String DEFAULT_FILE_DIR_VALUE = "default"; public static final String DEFAULT_TRUST_HOST = "default"; public static final String DEFAULT_PDF_DOWNLOAD_DISABLE = "true"; public static final String DEFAULT_FILE_UPLOAD_DISABLE = "false"; public static final String FILE_PREVIEW = ""; public static final String SLASH_FILE_PREVIEW = ""; public static final String FILE_PREVIEW_SLASH = ""; public static Boolean isCacheEnabled() { return cacheEnabled; } @Value("${cache.enabled:true}") public void setCacheEnabled(String cacheEnabled) { setCacheEnabledValueValue(Boolean.parseBoolean(cacheEnabled)); } public static void setCacheEnabledValueValue(Boolean cacheEnabled) { ConfigConstants.cacheEnabled = cacheEnabled; } public static String[] getSimText() { return simTexts; } @Value("${simText:txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd}") public void setSimText(String simText) { String[] simTextArr = simText.split(","); setSimTextValue(simTextArr); } public static void setSimTextValue(String[] simText) { ConfigConstants.simTexts = simText; } public static String[] getMedia() { return medias; } @Value("${media:mp3,wav,mp4,flv}") public void setMedia(String media) { String[] mediaArr = media.split(","); setMediaValue(mediaArr); } public static void setMediaValue(String[] Media) { ConfigConstants.medias = Media; } public static String[] getConvertMedias() { return convertMedias; } @Value("${convertMedias:avi,mov,wmv,mkv,3gp,rm}") public void setConvertMedias(String convertMedia) { String[] mediaArr = convertMedia.split(","); setConvertMediaValue(mediaArr); } public static void setConvertMediaValue(String[] ConvertMedia) { ConfigConstants.convertMedias = ConvertMedia; } public static String getMediaConvertDisable() { return mediaConvertDisable; } @Value("${media.convert.disable:true}") public void setMediaConvertDisable(String mediaConvertDisable) { setMediaConvertDisableValue(mediaConvertDisable); } public static void setMediaConvertDisableValue(String mediaConvertDisable) { ConfigConstants.mediaConvertDisable = mediaConvertDisable; } public static String getOfficePreviewType() { return officePreviewType; } @Value("${office.preview.type:image}") public void setOfficePreviewType(String officePreviewType) { setOfficePreviewTypeValue(officePreviewType); } public static void setOfficePreviewTypeValue(String officePreviewType) { ConfigConstants.officePreviewType = officePreviewType; } public static String getFtpUsername() { return ftpUsername; } @Value("${ftp.username:}") public void setFtpUsername(String ftpUsername) { setFtpUsernameValue(ftpUsername); } public static void setFtpUsernameValue(String ftpUsername) { ConfigConstants.ftpUsername = ftpUsername; } public static String getFtpPassword() { return ftpPassword; } @Value("${ftp.password:}") public void setFtpPassword(String ftpPassword) { setFtpPasswordValue(ftpPassword); } public static void setFtpPasswordValue(String ftpPassword) { ConfigConstants.ftpPassword = ftpPassword; } public static String getFtpControlEncoding() { return ftpControlEncoding; } @Value("${ftp.control.encoding:UTF-8}") public void setFtpControlEncoding(String ftpControlEncoding) { setFtpControlEncodingValue(ftpControlEncoding); } public static void setFtpControlEncodingValue(String ftpControlEncoding) { ConfigConstants.ftpControlEncoding = ftpControlEncoding; } public static String getBaseUrl() { return baseUrl; } @Value("${base.url:default}") public void setBaseUrl(String baseUrl) { setBaseUrlValue(baseUrl); } public static void setBaseUrlValue(String baseUrl) { ConfigConstants.baseUrl = baseUrl; } /** * 文件夹后需要加/ * @return */ public static String getFileDir() { return fileDir; } @Value("${file.dir:default}") public void setFileDir(String fileDir) { setFileDirValue(fileDir); } public static void setFileDirValue(String fileDir) { if (!DEFAULT_FILE_DIR_VALUE.equalsIgnoreCase(fileDir)) { if (!fileDir.endsWith(File.separator)) { fileDir = fileDir + File.separator; } ConfigConstants.fileDir = fileDir; } } @Value("${trust.host:default}") public void setTrustHost(String trustHost) { setTrustHostValue(trustHost); } public static void setTrustHostValue(String trustHost) { CopyOnWriteArraySet trustHostSet; if (DEFAULT_TRUST_HOST.equalsIgnoreCase(trustHost)) { trustHostSet = new CopyOnWriteArraySet<>(); } else { String[] trustHostArray = trustHost.toLowerCase().split(","); trustHostSet = new CopyOnWriteArraySet<>(Arrays.asList(trustHostArray)); setTrustHostSet(trustHostSet); } setTrustHostSet(trustHostSet); } public static Set getTrustHostSet() { return trustHostSet; } private static void setTrustHostSet(CopyOnWriteArraySet trustHostSet) { ConfigConstants.trustHostSet = trustHostSet; } public static String getPdfDownloadDisable() { return pdfDownloadDisable; } @Value("${pdf.download.disable:true}") public void setPdfDownloadDisable(String pdfDownloadDisable) { setPdfDownloadDisableValue(pdfDownloadDisable); } public static void setPdfDownloadDisableValue(String pdfDownloadDisable) { ConfigConstants.pdfDownloadDisable = pdfDownloadDisable; } public static String getOfficePreviewSwitchDisabled() { return officePreviewSwitchDisabled; } @Value("${office.preview.switch.disabled:true}") public void setOfficePreviewSwitchDisabled(String officePreviewSwitchDisabled) { ConfigConstants.officePreviewSwitchDisabled = officePreviewSwitchDisabled; } public static void setOfficePreviewSwitchDisabledValue(String officePreviewSwitchDisabled) { ConfigConstants.officePreviewSwitchDisabled = officePreviewSwitchDisabled; } public static Boolean getFileUploadDisable() { return fileUploadDisable; } @Value("${file.upload.disable:false}") public static void setFileUploadDisable(Boolean fileUploadDisable) { setFileUploadDisableValue(fileUploadDisable); } public static void setFileUploadDisableValue(Boolean fileUploadDisable) { ConfigConstants.fileUploadDisable = fileUploadDisable; } }