我的jspx页面中有一个表单,如下所示:
<form class="form-horizontal no-margin uploadform" action="/webapp/post" method="POST" encoding="multipart/form-data" enctype="multipart/form-data">
<input type="text" name="nomfichact" id="nomfichact" />
<input id="content" name="content" type="file"
style="display: none;"
accept="image/x-png, image/gif, image/jpeg" />
<input readonly="readonly" class="input-large" type="text" />
<a onclick="$('input[id=content]').click();">Choose file</a>
</form>至于服务器端,我使用spring mvc来捕获文件,如下所示:
@RequestMapping(method = RequestMethod.POST, consumes = "multipart/form-data", produces = "text/html")
public String create(@Valid UploadedFile mediaUpload, HttpSession session, BindingResult bindingResult, Model uiModel,
HttpServletRequest httpServletRequest){
CommonsMultipartFile content = mediaUpload.getContent();
this.save((FileInputStream)content.getInputStream());
}这在火狐上工作得很好,但使用ie8或ie9就不行了,它会返回null。我读过关于编码的文章,我应该在表单上放置enctype和编码标签,但这并没有起到作用。提前感谢
上传的文件类定义包含:
@Transient
private CommonsMultipartFile content;
public CommonsMultipartFile getContent() {
return content;
}
public void setContent(CommonsMultipartFile content) {
this.content = content;
}发布于 2013-06-13 05:01:30
以防有人遇到同样的问题。问题出在ie没有在输入中发送id为content和style display:none的文件。
<input id="content" name="content" type="file"
style="display: none;"
accept="image/x-png, image/gif, image/jpeg" />我使用一个软件来调试从浏览器发送的http请求,解决了这个问题。
我解决了使用类型为file的简单输入的问题。
https://stackoverflow.com/questions/16777255
复制相似问题