Search in sources :

Example 1 with JsonRender

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());
}
Also used : SysUser(com.hxkj.system.model.SysUser) JsonRender(com.jfinal.render.JsonRender) UploadFile(com.jfinal.upload.UploadFile) SysFile(com.hxkj.system.model.SysFile) SimpleDateFormat(java.text.SimpleDateFormat) UploadFile(com.jfinal.upload.UploadFile) File(java.io.File) SysFile(com.hxkj.system.model.SysFile)

Example 2 with JsonRender

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());
}
Also used : Ret(com.jfinal.kit.Ret) JsonRender(com.jfinal.render.JsonRender)

Example 3 with JsonRender

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());
}
Also used : Ret(com.jfinal.kit.Ret) JsonRender(com.jfinal.render.JsonRender)

Example 4 with JsonRender

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());
}
Also used : Ret(com.jfinal.kit.Ret) JsonRender(com.jfinal.render.JsonRender)

Example 5 with JsonRender

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");
        }
    }
}
Also used : Ret(com.jfinal.kit.Ret) JsonRender(com.jfinal.render.JsonRender)

Aggregations

JsonRender (com.jfinal.render.JsonRender)11 Ret (com.jfinal.kit.Ret)10 SysFile (com.hxkj.system.model.SysFile)1 SysUser (com.hxkj.system.model.SysUser)1 UploadFile (com.jfinal.upload.UploadFile)1 File (java.io.File)1 SimpleDateFormat (java.text.SimpleDateFormat)1