我用一个拦截器来判断上传文件是否超出大小了 为什么返回json 前台收不到

public void intercept(Invocation invocation) {
    Controller c = invocation.getController();
    BaseController controller = (BaseController) invocation.getController();
    HttpServletRequest request = c.getRequest();

    String contentType = request.getContentType();    //获取Content-Type
    if ((contentType != null) && (contentType.toLowerCase().startsWith("multipart/"))) {
        try {
            logger.info("开始验证文件");
            controller.getFiles();
        } catch (Exception e) {
            logger.error("文件验证异常",e);
            Map<String, String> errorMap = new HashMap<>();
            errorMap.put("msg", "操作失败,文件超出最大限制!");
            Ret ret = Ret.fail("msg", errorMap);
            controller.renderJson(new JsonRender(ret).forIE());
            logger.info("开始验证文件2");
            return;
        }
    }
    logger.info("开始验证文件3");
    invocation.invoke();
}





controller.renderJson(new JsonRender(ret).forIE());
这个前台怎么接收不到数据,用config 启动的方式可以,用tomcat 部署的方式就接收不到数据

因为jfinal 如果上传文件超出限制大小就会抛异常,导致后面程序无法执行,所以我加了一个拦截器  如果超出大小 抛异常了就直接返回json 前台接收显示信息

评论区

351539365

2018-08-16 14:18

JFinal

2018-08-16 15:01

单步调试一下看程序走向,目前看着没有问题,只能单步调试找原因

351539365

2018-08-17 09:21

@JFinal 如果上传文件大小 超出系统设置大小 抛异常前台就接收不到返回的json 如果文件在合理范围内 就可以接收返回的json ,是不是抛异常改变了输出方式呀
用jetty方式启动没问题 Tomcat方式就有上面那个问题 很奇怪

热门反馈

扫码入社