3.2K Star 8.8K Fork 3.6K

GVPJFinal / JFinal

 / 详情

V1.9 基于form action的文件上传302的bug?

已完成
创建于  
2017-05-26 23:29

:joy: 很诡异的BUG,下面是代码,我已经搞了5个小时了,偶然比对路径,action感觉后面要加个/,果然一加问题就没了!
输入图片说明
导致 上传302的代码:

<form method="post" enctype="multipart/form-data" action="${ctx}/upload?t=${Math.random()}">
                        <div class="form-group">
                            <label class="control-label">证件资质</label>
                            <select class="form-control" name="type" required>
                                <option value="-">未设置</option>
                                <option value="xxx">xxx</option>
                                <option value="vvvv">vvvv</option>
                            </select>
                        </div>
                        <div class="form-group">
                            <label class="control-label">选择文件</label>
                            <input type="file" name="file" id="file" accept="image/png,image/jpeg,image/bmp" required>
                            <span class="help-block text-danger">
                                ${msg}
                            </span>
                        </div>
                        <div class="form-group">
                            <label class="control-label">有效期至</label>
                            <input class="form-control" type="date" name="expireDate" required>
                        </div>
                        <div class="form-group">
                            <button type="submit" class="btn btn-danger">
                                <i class="glyphicon glyphicon-upload"></i>
                                上传
                            </button>
                        </div>
                    </form>

解决办法,action改为$${ctx}/upload/,URL参数仅做测试与其无关。
这个估计是JFinal 路径拦截正则的BUG,就连Handler也没有进去就看到浏览器action已经302完成了!

评论 (9)

小鹏 创建了任务

:joy: 我已经给JFinal掘了超过3个BUG了,作者是不是该表示一下。

小鹏 关闭了任务
小鹏 重新打开了任务

别动不动就Bug,你后台的mapping贴出来啊

@phil

    @Override
    public void configRoute(Routes me) {
        me.add("/", ManageController.class);
    }

@phil 你试试看能否重现?

浏览器:Chrome版本 58.0.3029.110 (64-bit)
我的标题后面已经加了?符号,表示我不敢100%确定这是BUG,但我敢说这应该不是我的问题。

class xController{
action() {getFile('file');}
}

mapping: /x -> xController.class

/x/action

/x/action/

有何不同?

这个问题是好多年前就多次说过的事了,是 tomcat 的问题,与 jfinal 毫无关系,细节在这里:http://www.oschina.net/question/941098_93842

JFinal 关闭了任务

@JFinal 好吧,原来是这个原因。

tomcat有个极坏的毛病,如果你的uri正好命中项目的一个目录,tomcat会给你加个 / :sunglasses:

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(4)
12554 rocy 1578914848 840 jfinal 1580661334 439064 zempty 1578923896
Java
1
https://gitee.com/jfinal/jfinal.git
git@gitee.com:jfinal/jfinal.git
jfinal
jfinal
JFinal

搜索帮助

344bd9b3 5694891 D2dac590 5694891