JFinal 上传文件

超级大富 发布于 2014/02/27 19:55
阅读 4K+
收藏 1

java.lang.RuntimeException: java.io.IOException: Posted content type isn't multipart/form-data

JFinal 上传文件的时候报这么错误,debug中,传递的参数也没有表单中的文件,form表单已经设置enctype="multipart/form-data",cos包也已经加了



加载中
0
JFinal
JFinal

引用来自“超级大富”的答案

用火狐追踪了一下,发现怎么返回都是302了,奇怪了。在另一个项目下是可以的

@JFinal

     问题基本清楚了,是 tomcat 自做主张做了 302 重定向,第一次发送的请求被重定向后,第二次发的请求并未真正上传文件,不仅没有上传文件,而且重定向后的请求为 method="get"

    具体原因见这个问答:http://www.oschina.net/question/941098_93842

Brin想写程序
Brin想写程序
回复 @超级大富 :ajax提交是有这个问题。包括我发现的highchart.js的服务器端提交也有这个同样原理引起的bug。
降龙罗汉
降龙罗汉
回复 @超级大富 :最后有个onsubmit,哈哈
超级大富
超级大富
我这边排查了一下,是我因为使用ajax 提交,不支持enctype="multipart/form-data",然后我的系统假如出错的话,会自动重定向到首页去。但是我现在遇到上传的文件不见了,我有设置保存路径为/upload/web
3
JFinal
JFinal
form 表单中必须是 method="post",另外 getFile() 要放在 getPara() 方法前,Validator 中亦如此
超级大富
超级大富
回复 @whaon : 设置了
whaon
whaon
回复 @超级大富 : form表单中设置了 ENCTYPE="multipart/form-data"么
超级大富
超级大富
这些都设置了,getfile方法是在getpara之前的
0
红星xx
红星xx
将 getFile 放在第一句 试试。
超级大富
超级大富
已经放在第一行了
0
超级大富
超级大富

用火狐追踪了一下,发现怎么返回都是302了,奇怪了。在另一个项目下是可以的

@JFinal

0
JFinal_Adore
JFinal_Adore

楼主这个问题解决了吗?  我和你是一模一样的问题,该设置的地方都设置了。而且你这个好像是去掉onsubmit回调就不会报错了,但是上传没反应,而且也用不了回调做页面处理。  你怎么解决的 ?

JFinal_Adore
JFinal_Adore
回复 @超级大富 : 嗯 和你一模一样的架构
超级大富
超级大富
你也是使用dwz的吗?
返回顶部
顶部