1
回答
jquery.form.js上传文件,一点反应都没有。
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

今天尝试了一下jQuery.form.js插件来进行异步的提交表单上传文件

jsp:

?
1
2
3
4
               

 

 <form 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都没进去

使用浏览器调试了一下也不报错,什么反应都没有。。求请教,很急

                  
举报
蜡笔小新_
发帖于3年前 1回/3K+阅
共有1个答案 最后回答: 3年前

$("#form2").submit 这里只是给form注册了一个submit事件,而不是执行submit!!!

你这段代码实际效果就是:点击上传按钮,给form2注册一个submit事件。

你应该将这也写:

$(function(){
	var options={
            url:"uploadServlet",
            type:"post",
            success:function(mes){
                alert(mes);
            }
        };
        $("#form2").submit(function() {
            $(this).ajaxSubmit(options);
                return false;
        });
			 
	$("#bt").click(function(){
		$("#form2").submit();
	});
});




--- 共有 1 条评论 ---
蜡笔小新_你说的对,我照你的改了,上传OK,但是不弹框,我实在也没招了,问我同学要了一个jquery.form.js重新放上去,竟然好了。我晕死,可能是我下载的这个js有问题。 3年前 回复
顶部