use of com.jfinal.render.JsonRender in project my_curd by qinyou.
the class SysFileController method addAction.
/**
* 增加
* 文件过大 没有良好的提示性信息
*/
public void addAction() throws IOException {
Map<String, Object> result = new HashMap<String, Object>();
HashMap<String, String> extMap = new HashMap<String, String>();
extMap.put("image", prop.get("imageType"));
extMap.put("media", prop.get("mediaType"));
extMap.put("file", prop.get("fileType"));
String limitFileTypes = extMap.get("image") + "," + extMap.get("media") + "," + extMap.get("file");
UploadFile uploadFile = getFile("file");
if (uploadFile != null) {
// 文件原名
String orginFilename = uploadFile.getOriginalFileName();
// 文件后缀
String fileSuf = orginFilename.substring(orginFilename.lastIndexOf(".") + 1).toLowerCase();
if (!Arrays.<String>asList(limitFileTypes.split(",")).contains(fileSuf)) {
result.put("error", 1);
result.put("message", "只允许后缀为:<br/>" + extMap.get("image") + "<br/>" + extMap.get("media") + "<br/>" + extMap.get("file") + "<br/>格式文件");
uploadFile.getFile().delete();
} else {
// 文件量大、上传频繁 这种分发方式并不合适(文件copy后删除原文件占资源,按类型分类可能导致某个目录下文件量超多)
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileSuf;
String pre;
if (Arrays.asList(extMap.get("image").split(",")).contains(fileSuf)) {
pre = prop.get("imagePath");
} else if (Arrays.asList(extMap.get("media").split(",")).contains(fileSuf)) {
pre = prop.get("mediaPath");
} else if (Arrays.asList(extMap.get("file").split(",")).contains(fileSuf)) {
pre = prop.get("filePath");
} else {
pre = "upload/unlikeFile";
}
String relativePath = pre + "/" + newFileName;
pre = PathKit.getWebRootPath() + '/' + pre;
newFileName = pre + "/" + newFileName;
File savefile = new File(newFileName);
FileUtils.copyFile(uploadFile.getFile(), savefile);
if (uploadFile.getFile().exists()) {
uploadFile.getFile().delete();
}
SysFile sysFile = new SysFile();
SysUser sysUser = getSessionUser();
sysFile.setUserId(sysUser.getId());
sysFile.setOriginalFilename(orginFilename);
sysFile.setPath(relativePath);
sysFile.setRemark(getPara("remark"));
sysFile.setType(fileSuf);
sysFile.setCreateTime(new Date());
boolean saveFlag = sysFile.save();
if (!saveFlag) {
result.put("error", 1);
result.put("message", "数据存储失败");
savefile.delete();
} else {
result.put("error", 0);
}
}
} else {
result.put("error", 1);
result.put("message", "请选择文件");
}
render(new JsonRender(JSON.toJSONString(result)).forIE());
}
use of com.jfinal.render.JsonRender in project my_curd by qinyou.
the class BaseController method renderFail.
/**
* 失败操作
*/
protected void renderFail() {
Ret ret = Ret.create().setFail();
render(new JsonRender(ret).forIE());
}
use of com.jfinal.render.JsonRender in project my_curd by qinyou.
the class BaseController method renderSuccess.
/**
* 成功操作
*
* @param data
*/
protected void renderSuccess(List<?> data) {
Ret ret = Ret.create().setOk().setIfNotNull("data", data);
render(new JsonRender(ret).forIE());
}
use of com.jfinal.render.JsonRender in project my_curd by qinyou.
the class BaseController method renderFail.
/**
* 失败操作
*
* @param msg
*/
protected void renderFail(String msg) {
Ret ret = Ret.create().setFail().setIfNotNull("msg", msg);
render(new JsonRender(ret).forIE());
}
use of com.jfinal.render.JsonRender in project my_curd by qinyou.
the class ComActionInterceptor method intercept.
@Override
public void intercept(Invocation inv) {
inv.getController().setAttr("setting", Constant.SETTING);
String errMsg = null;
try {
inv.invoke();
} catch (Exception e) {
log.error(e.getMessage(), e);
errMsg = ExceptionUtils.getMessage(e);
}
// 返回异常信息
if (StringUtils.notEmpty(errMsg)) {
String requestType = inv.getController().getRequest().getHeader("X-Requested-With");
if ("XMLHttpRequest".equals(requestType) || StringUtils.notEmpty(inv.getController().getPara("xmlHttpRequest"))) {
Ret ret = Ret.create().set("state", "error").set("msg", errMsg);
inv.getController().render(new JsonRender(ret).forIE());
} else {
inv.getController().setAttr("errorMsg", errMsg);
inv.getController().render(Constant.VIEW_PATH + "/common/500.ftl");
}
}
}
Aggregations