Jfinal文件上传,需要在拦截器里接收参数

发布于 2015/08/29 21:17
阅读 1K+
收藏 0

项目中需要提供token去验证用户,这是背景。

Jfinal文件上传需要multipart/form-data(posted content type),那么如何在拦截器中如何接收token参数

3.【问】:当from加上属性enctype="multipart/form-data"获取不到表单的参数,除掉没问题。 【jfinal答】:如果请求类型为"multipart/form-data",必须先调用任意一个 getFile 方法,因为 multipart 请求的解析是在 getFile 方法中完成的。调用完后就可以通过 getPara 方法来获取值了。

但拦截器中的getPara在getFile 之前。。

加载中
0
铂金蛋蛋
铂金蛋蛋
为什么不行?你要描述的问题是什么?http://www.oschina.net/question/1243875_238331
铂金蛋蛋
铂金蛋蛋
@九 提问时 多翻翻原帖把,还有文档
九
http://my.oschina.net/muchuanwazi/blog/125178中的3 写道 multipart 请求的解析是在 getFile 方法中完成的。调用完后就可以通过 getPara 方法来获取值了。 但Interceptor中getPara的在getFile之前
0
九

根据http://www.oschina.net/question/870925_128244

另外加一个拦截器,FileTokenIntercepor,在getPara之前直接执行一次getFile

public class FileTokenIntercepor implements Interceptor { @Override  public void intercept(Invocation ai) {
        Controller controller = ai.getController();
        controller.getFile();
        String token = controller.getPara("token");
        ...  
        controller.setAttr("user", user);
        ai.invoke();
    }
}



0
V小刚
V小刚

你的问题我们也遇到过 解决办法就是在最外层拦截器中加上这么一行代码

try{
 getFile();
}catch(Exception e){
//ignore

}

其实我希望的是jfinal框架能根据请求的头信息自动把getFile给调用了,不要强制使用者必须先掉getFile 然后才能调getPara

返回顶部
顶部