JFinal在上传大文件问题

JFinal在上传大文件问题

笑红尘 发布于 2021-11-27 字数 418 浏览 772 回复 1

@JFinal 你好,想跟你请教个问题:

JFinal在上传大文件(1g以上)文件时,百分之10的概率可以成功,大多数情况是点击上传后不走controller,而是直接redirect到上传表单页面。请指点……

// 设置上传文件大小限制
me.setMaxPostSize(200*Const.DEFAULT_MAX_POST_SIZE);

UploadFile file = getFile("uploadfile");

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不再见 2021-12-01 1 楼

这种情况应该只发生在使用 tomcat 的时候,tomcat 有个 bug,假定如下条件:

1:WebRoot 下有个目录名称 upload

2:假定访问上传文件的 action 的 url 是 "/upload"

    当以上两个条件同时出现,上传文件时发送 POST 请求到 "/upload" 会被 tomcat 强行做了一个 302 重定向到 "/upload/" ,也即被重定向到了原来的 url 后面添加了一个斜杠 "/"。然而重定向以后 POST 中传递的参数会全部丢失,包括上传文件。

    所以解决方案可以选择下面的多个方案之一:

1:避免 WebRoot 下面出现与 actionKey 相同的目录

2:在请求的 actionKey 后面事先添加上斜杠 "/" , 如 url 让它直接就是 "/upload/"

3:对所有的视图文件先建个 view 目录,然后再在这个 view 下面分别建子目录,这个方案其实与方案一本质是相同的,都是来避免 WebRoot 下目录名与 actionKey 不同