求spring MVC 实现异步上传文件

leveldeng 2015-11-08 01:30:51
这是我在百度上找的代码:
html:
<form id="fundsForm" action="" enctype="multipart/form-data" method="post">
<table id="capitTable" border="0" cellSpacing="0" cellPadding="0">
<tr>
<td>

<div id="capi0" class="capital">
<div class="capitalinput" id="capitalName0">
    
<input type="hidden" id="hica0" value="0" name="aptitudeVO" />
<input type="file" id="capiFile0" name="file" value="上传附件"/>
</div>
<div class="delDiv"><img src="${ctx}/image/20.png" onclick="delectcapit(0)" /></div>
</div>

</td>
</tr>
</table>
</form>
</div>

<div id="submitFunds" style="width:728px;text-align:right;"><img src="${ctx}/image/9.png" style="cursor:pointer" onclick="submitCapital()" />   </div>


<script type='text/javascript' src='${ctx}/scripts/jquery-1.7.2.min.js'></script>
<script type='text/javascript' src='${ctx}/scripts/jquery.min.js'></script>
<script type="text/javascript" src="${ctx}/scripts/jquery.form.js"></script>

<script type='text/javascript'>

function submitCapital() {
var ajax_option = {
type: "post",
url : "changeCapital.do",
dataType: "json",
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("出错了");
},
success : function(data) {
alert("到这了");
}
};
$('#fundsForm').ajaxSubmit(ajax_option);
alert('after...');
}

</script>

@Controller:
ResponseBody
private String changeCapital(@RequestParam(value="file", required=false) MultipartFile file1) {
//System.out.println(file1.getOriginalFilename());
System.out.println("file1 -> " + file1);
if (file1 != null) {
try {
System.out.println("bytes size of file1 -> " + file1.getBytes().length);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


return null;
}


上传后 控制台打印:file1 -> null
前端:

并直接弹出after... 并不弹出"到这了"

前端报错Uncaught : undefined is not a function
百度得知在jquery文件中加入

我加入后又报

各位大神求救啊
也不知道这个方法行不行?
主要是实现异步上传多个文件,如果这个方法不行,还请教我...
...全文
245 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ab637800 2015-11-09
用插件 ajaxFileUpload
回复
树成 2015-11-09
ajax是不能文件上传的,ajax基本上只支持文本,如果你想实现异步上传有三个方法。 1、传统方法,就是普通的form文件提交,不过form的target指向一个隐藏的iframe,这样就可以实现页面不刷新上传了。不过这种方式缺点很多,最重要就是进度条的实现和页面锁定。 2、富客户端,使用网上提供的jsapi或者swf的组件,在html5之前有很长一段时间很流行的技术,缺点是需要你集成对应的富客户端组件。 3、websocket,比较新的技术,在客户端与服务器之间建立websocket通道完成文件传输,缺点是技术教新,如果你是老板服务器或者老版本浏览器并不支持。
回复
Belens 2015-11-08
可以参考我之前写的,异步下载,有进度条,提供下载。 http://blog.csdn.net/programmer_sir/article/details/29570935
回复
Belens 2015-11-08
说错了,是上传。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-11-08 01:30
社区公告
暂无公告