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

goja.rapid.ueditor.UEAction Maven / Gradle / Ivy

The newest version!
package goja.rapid.ueditor;

import com.alibaba.fastjson.JSON;

import com.google.common.io.Files;

import com.jfinal.core.Controller;
import com.jfinal.upload.UploadFile;
import goja.core.StringPool;
import goja.rapid.ueditor.define.AppInfo;
import goja.rapid.ueditor.define.BaseState;
import goja.rapid.ueditor.define.State;
import goja.rapid.ueditor.kit.FileManager;
import goja.rapid.ueditor.kit.ImageHunter;
import goja.rapid.ueditor.kit.PathFormatKit;
import goja.rapid.ueditor.kit.StorageManager;

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.FileUtils;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.List;

/**
 * 

* * @author sogYF * @version 1.0 * @since JDK 1.6 */ enum UEAction { CONFIG { @Override public String invoke() { return JSON.toJSONString(UEConfig.me); } @Override public String invoke(Controller controller) { return null; } }, /** * 上传图片

返回示例:

{"original":"demo.jpg","name":"demo.jpg","url":"\/server\/ueditor\/upload\/image\/demo.jpg",UEConst.SIZE:"99697", * "type":".jpg","state":"SUCCESS"} */ UPLOADIMAGE { @Override public String invoke() { return null; } @Override public String invoke(Controller controller) { final UEConfig config = UEConfig.me; String imageFieldName = config.getImageFieldName(); return storageUploadFile(controller, config, true) .toJSONString(); } }, UPLOADFILE { @Override public String invoke() { return null; } @Override public String invoke(Controller controller) { UEConfig config = UEConfig.me; String fieldName = config.getFileFieldName(); return storageUploadFile(controller, config, false) .toJSONString(); } }, UPLOADVIDEO { @Override public String invoke() { return null; } @Override public String invoke(Controller controller) { UEConfig config = UEConfig.me; String fieldName = config.getVideoFieldName(); return storageUploadFile(controller, config, false) .toJSONString(); } }, CATCHIMAGE { @Override public String invoke() { return null; } @Override public String invoke(Controller controller) { final ImageHunter imageHunter = new ImageHunter(); String[] list = controller.getParaValues(imageHunter.getFilename()); return imageHunter.capture(list).toJSONString(); } }, UPLOADSCRAWL { @Override public String invoke() { return null; } @Override public String invoke(Controller controller) { String fieldName = UEConfig.me.getScrawlFieldName(); return base64Save(controller.getPara(fieldName)) .toJSONString(); } }, /** * 列出指定目录下的图片

imageManagerActionName {String} [默认值:"listimage"] //执行图片管理的action名称 * imageManagerListPath {String} [默认值:"/ueditor/php/upload/image/"] //指定要列出图片的目录 * imageManagerListSize {String} [默认值:20] //每次列出文件数量 imageManagerUrlPrefix {String} [默认值:""] * //图片访问路径前缀 imageManagerInsertAlign {String} [默认值:"none"] //插入的图片浮动方式 imageManagerAllowFiles * {Array}, //列出的文件类型

example:

{ "state": "SUCCESS", "list": [ { "url": * "/server/ueditor/upload/image/3 2.jpg", "mtime": 1400203383 }, { "url": * "/server/ueditor/upload/image/1.jpg", "mtime": 1400203383 } ], "start": "0", "total": 29 } */ LISTIMAGE { @Override public String invoke() { return ""; } @Override public String invoke(Controller controller) { int index = controller.getParaToInt(UEConst.START); int size = controller.getParaToInt(UEConst.SIZE); final UEConfig ueConfig = UEConfig.me; return new FileManager(ueConfig.getImageManagerListPath(), ueConfig.getImageManagerAllowFiles(), ueConfig.getImageManagerListSize()) .listFile(index) .toJSONString(); } }, /** * 列出指定目录下的文件

fileManagerActionName {String} [默认值:"listfile"] //执行文件管理的action名称 * fileManagerListPath {String} [默认值:"/ueditor/php/upload/file/"] //指定要列出文件的目录 * fileManagerUrlPrefix {String} [默认值:""] //文件访问路径前缀 fileManagerListSize {String} [默认值:20] * //每次列出文件数量 fileManagerAllowFiles {Array} //列出的文件类型

返回示例 :

{ "state": "SUCCESS", * "list": [ { "url": "/server/ueditor/upload/file/7.pptx", "mtime": 1400203383 } ], "start": "0", * "total": 7 } */ LISTFILE { @Override public String invoke() { return null; } @Override public String invoke(Controller controller) { int index = controller.getParaToInt(UEConst.START); int size = controller.getParaToInt(UEConst.SIZE); final UEConfig ueConfig = UEConfig.me; return new FileManager( ueConfig.getFileManagerListPath(), ueConfig.getFileAllowFiles(), ueConfig.getFileManagerListSize()) .listFile(index) .toJSONString(); } }; /** * @param controller 请求控制器 * @param ueConfig UE配置 * @param image_flag 是否是上传图片,true表示是 * @return 请求状态 */ private static State storageUploadFile(Controller controller, final UEConfig ueConfig, boolean image_flag) { final UploadFile uploadFile = controller.getFile(ueConfig.getImageFieldName()); if (uploadFile == null) { return new BaseState(false, AppInfo.NOTFOUND_UPLOAD_DATA); } else { try { String originFileName = uploadFile.getOriginalFileName(); String suffix = StringPool.DOT + Files.getFileExtension(originFileName); final List allowFiles = image_flag ? ueConfig.getImageAllowFiles() : ueConfig.getFileAllowFiles(); if (!allowFiles.contains(suffix)) { return new BaseState(false, AppInfo.NOT_ALLOW_FILE_TYPE); } originFileName = Files.getNameWithoutExtension(originFileName); String savePath = image_flag ? ueConfig.getImagePathFormat() : ueConfig.getFilePathFormat(); savePath = PathFormatKit.parse(savePath, originFileName) + suffix; final FileInputStream fileInputStream; fileInputStream = new FileInputStream(uploadFile.getFile()); State storageState = StorageManager .saveFileByInputStream(fileInputStream, savePath, image_flag ? ueConfig.getImageMaxSize() : ueConfig.getFileMaxSize()); if (storageState.isSuccess()) { final String url = PathFormatKit.format(savePath); storageState.putInfo(UEConst.URL, url); storageState.putInfo(UEConst.TYPE, suffix); storageState.putInfo(UEConst.ORIGINAL, originFileName + suffix); } return storageState; } catch (FileNotFoundException e) { e.printStackTrace(); return new BaseState(false, AppInfo.IO_ERROR); } finally { FileUtils.deleteQuietly(uploadFile.getFile()); } } } /** * @param content Base64图片字符串 * @return 存储状态 */ private static State base64Save(String content) { byte[] data = Base64.decodeBase64(content); UEConfig config = UEConfig.me; long maxSize = config.getScrawlMaxSize(); if (!(data.length <= maxSize)) { return new BaseState(false, AppInfo.MAX_SIZE); } String suffix = ".jpg"; String savePath = PathFormatKit.parse(config.getScrawlPathFormat(), config.getScrawlFieldName()); savePath = savePath + suffix; State storageState = StorageManager.saveBinaryFile(data, savePath); if (storageState.isSuccess()) { storageState.putInfo(UEConst.URL, PathFormatKit.format(savePath)); storageState.putInfo(UEConst.TYPE, suffix); storageState.putInfo(UEConst.ORIGINAL, StringPool.EMPTY); } return storageState; } public abstract String invoke(); public abstract String invoke(Controller controller); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy