JFinal文件上传问题

数据参数获取问题

JFinal官方文档给出以下声明:

如果客户端请求为multipart request(form表单使用了enctype="multipart/form-data"),
那么必须先调用getFile系列方法才能使getPara系列方法正常工作,
因为multipart request需要通过getFile系列方法解析请求体中的数据,包括参数。
同样的道理在Interceptor、Validator中也需要先调用getFile。

多图片上传时,只接收到一个uploadFile对象问题

前台代码

<input id="imgId" name="imgName" type="file" multiple="multiple" >

注意:form标签要加上method="post" enctype="multipart/form-data"

后台代码

List<UploadFile> list = getFiles(path);

问题

前台上传五张图片,path路径下已保存上传的五张图片,但是list列表里只有一个UploadFile对象

原因

MultipartRequest这个类的的271行代码:
这里写图片描述

因为input的标签name = imgName,每次name都一样,往files里put的时候都会覆盖。

解决方法

JFinal实现文件上传基于cos-26Dec2008.jar,可以反编译修改jar包里MultipartRequest代码。但是maven给出了该jar包的新版本cos-2017.5.jar,新版本里无此问题。

猜你喜欢

转载自blog.csdn.net/xuexuan_050848/article/details/79437870