ajaxFileUpload文件上传时参数无法接收到。

ramnight 发布于 2014/07/21 14:46
阅读 14K+
收藏 1

@JFinal 你好,想跟你请教个问题:用ajaxFileUpload上传文件的时候,传递了参数{"c":"ccc","a":"aaa"}。但是在Controller中的request里面,_parameters是null。请求已经发过去了,参数也带过去了,就是没有接收得到。如果换成ajax只上传参数的话,也会接收到参数。之前paodding rose框架下ajaxFileUpload也是可以带参数的。请老大指点。多有叨扰,还望海涵.....

加载中
0
JFinal
JFinal
看一下控制台的 JFinal action report 信息中有一列 parameter ,如果传了参会在这里输出,如果没有就检查 js 是否写错了
ramnight
ramnight
回复 @JFinal : 找到问题了,但是不知道原因,老大看我下面的评论,回复只能输入200字。谢谢
JFinal
JFinal
回复 @RamNight : 注意在 getPara 调用之前要先调用 getFile 方法,手册中有详细说明
ramnight
ramnight
控制台是没有输出的,但是用前端调试工具能够看到请求内容里面已经把请求的参数传过去了啊。毫无头绪......
0
ramnight
ramnight

引用来自“JFinal”的评论

看一下控制台的 JFinal action report 信息中有一列 parameter ,如果传了参会在这里输出,如果没有就检查 js 是否写错了
------WebKitFormBoundary0Tr54cwihXIy94GM Content-Disposition: form-data; name="a" aaa ------WebKitFormBoundary0Tr54cwihXIy94GM Content-Disposition: form-data; name="uploadFile"; filename="3.jpg" Content-Type: image/jpeg
0
ramnight
ramnight
public List<UploadFile> getFiles(String saveDirectory) {
HttpServletRequest request = getRequest();
if (request instanceof MultipartRequest == false)
request = new MultipartRequest(request, saveDirectory);
return ((MultipartRequest) request).getFiles();

}

我在BaseController中重写了getFiles(历史残留,现在没啥用)。里面有一句HttpServletRequest request = getRequest();可能是因为这个所以导致参数传不进来,但是不知道为什么,这个Controller.request和getRequest()应该是一个吧?

ramnight
ramnight
回复 @JFinal : 明白了,多谢老大!
JFinal
JFinal
request 本来是Controller 中的一个属性,经由这个方法重写后,原controller 下的 request 属性在 getFile 后仍然没有变成 MultipartRequest,所以调用 getPara 时无法正确得到解析后的数据
0
繁华-落幕
你好楼主,现在我也遇到这个问题了,参数获取不到,请问你当时是怎么解决的?
繁华-落幕
回复 @xwcherry : 你看看能不能留个联系方式,我把代码发给你
x
xwcherry
回复 @繁华-落幕 : 怎么修改的?
繁华-落幕
回复 @xiaoyuer974 : 是ajaxfileupload.js文件有问题,需要修改
x
xiaoyuer974
您好 我也遇到了这个问题,请问您是怎么解决的
0
lujiawei
lujiawei
遇到同样的问题,肿么解决的?
C
Chalmers
我用的是spring mvc 在spring-mvc.xml配置文件加上<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />就可以了 ,如果传参没问题的话
C
Chalmers
我也遇到同样的问题,弄了半天终于找到了,controller那里 request 要变成MultipartHttpServletRequest的时候才可以取值,
0
qxiaogg
qxiaogg

如果用的是struts2的话,过滤器会把这个过滤掉,因此web.xml文件中改成

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.action</url-pattern>
  </filter-mapping>

返回顶部
顶部