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

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

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

引用来自“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
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()应该是一个吧?

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

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

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

顶部