今天闲着尝试了一下jQuery.form.js插件来进行异步的提交表单上传文件
jsp:
1
2
3
4
|
<form method="post"style="padding-left: 50px;padding-top: 25px"id="form2"enctype="multipart/form-data">
选择Excel文件:<input type="file"name="files"id="files"/></p>
<input type="button"value="上传"id="bt"/>
</form>
|
点击上传按钮的js事件代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<script src="JS/jquery-1.8.0.js"type="text/javascript"></script>
<script src="JS/jquery.form.js"type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$("#bt").click(function(){
varoptions={
url:"uploadServlet",
type:"post",
dataType:null,
success:function(mes){
alert(mes);
}
};
$("#form2").submit(function() {
$(this).ajaxSubmit(options);
returnfalse;
});
});
});
</script>
|
就是一个简单地上传文件的操作,上传的地址是一个servlet
在servlet中我使用cos上传方式
我在servlet中out.print出OK
servlet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)
throwsServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
String str="";
try{
String ExcelFile=this.getServletContext().getRealPath("ExcelFile")+"\\";
newMultipartRequest(request, ExcelFile,10*1024*1024,"utf-8",newDefaultFileRenamePolicy()) ;
str="OK";
}catch(Exception e) {
e.printStackTrace();
str="NO";
}
out.print(str);
out.flush();
out.close();
}
|
但是我运行一下,没有任何反应。。。压根这后台的servlet都没进去
也不报错,什么反应都没有。。。我很纳闷。
1,这个html写的貌似就有问题,在form中的任何button,如果不是重置按钮,貌似点击之后,默认都有直接提交所在form到后端的默认功能吧?
2,js方法好像也有问题, submit好像就已经提交了把,怎么还有里面的异步提交。提交2次是什么节奏?
3,我的理解,一般你用了js这种组件库的话,一般都是不需要自己写form的,你只要把某个页面区域(比如一个div有id)给用绑定方法绑定上(传入div的id),组件会自己初始化页面显示区域的显示内容的,你都是js里面配参数,然后,ajax也只要配置上路径和加传参数,回调函数就行了。
总之,我觉得你这个写的不对,你自己没搞清楚前,还是先看看说明下载的东西里面的示例代码吧。
只有type是submit的input,点击才能自动提交到后台调试一下,估计是js有报错,f12看下调试了,一点的反应都没有。。。。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。