最近在做毕业设计,遇到个麻烦,就是我想在某个页面(这是一个修改用户信息的页面)有两个FORM,称为FORM1跟FORM2吧。FORM1列出的是用户的个人信息,包括头像等。FORM2是用来上传头像的图片。
现在的问题是。我想做个局部刷新的效果,FORM2中设个BUTTON 用Onclick="upload()"来触发这个函数,这个函数需要提交这个FORM2到UploadServlet中去。当上传成功,servlet返回一个代表上传文件路径的字符串给回调函数callback。然后再CALLBACK里面再写在<img>标签中。
现在想问各位大哥的是这个提交FORM的函数怎么写?jquery跟json的内容还没学到,网上查了几个方法不怎么看得懂,所以来这里请教下。。
最重要做到的是局部刷新页面,这应该是用到AJAX吧?这个学过
还有。这个Form包含了文件上传项,enctype="multipart/form-data"在提交的时候会跟普通的form表单提交有不同区别吗?
现在的问题是。我想做个局部刷新的效果,FORM2中设个BUTTON 用Onclick="upload()"来触发这个函数,这个函数需要提交这个FORM2到UploadServlet中去。当上传成功,servlet返回一个代表上传文件路径的字符串给回调函数callback。然后再CALLBACK里面再写在<img>标签中。
现在想问各位大哥的是这个提交FORM的函数怎么写?jquery跟json的内容还没学到,网上查了几个方法不怎么看得懂,所以来这里请教下。。
最重要做到的是局部刷新页面,这应该是用到AJAX吧?这个学过
还有。这个Form包含了文件上传项,enctype="multipart/form-data"在提交的时候会跟普通的form表单提交有不同区别吗?
这个iframe可以做,
楼主搜下 iframe上传,成功后,给parent的dom(img)赋上刚上传的值就可以了。
再问下,还有别的方法吗?
另外我找到个例子,稍微看了下感觉比较简单很适合我,这里放上来顺便再问点问题
下面代码可能排版太烂,看不习惯可以看这个网址http://www.oschina.net/code/snippet_54371_4502[代码] [HTML]代码
01<html> 02<body> 03 04<form action="upload.jsp" id="form1" name="form1" encType="multipart/form-data" method="post" target="hidden_frame" > 05 <input type="file" id="file" name="file" style="width:450"> 06 <INPUT type="submit" value="上传文件"><span id="msg"></span> 07 <br> 08 <font color="red">支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上传</font> 09 <iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe> 10</form> 11 12</body> 13</html> 14 15<script type="text/javascript"> 16function callback(msg) 17{ 18 document.getElementById("file").outerHTML = document.getElementById("file").outerHTML; 19 document.getElementById("msg").innerHTML = "<font color=red>"+msg+"</font>"; 20} 21</script> [代码] 原理就是输出一段js代码到 iframe 中,然后在iframe中来控制它的父页面view sourceprint?
01<%@ page language="java" contentType="text/html; charset=gb2312" %> 02<%@ page import="com.jspsmart.upload.SmartUpload"%> 03 04<% 05 //新建一个SmartUpload对象 06 SmartUpload su = new SmartUpload(); 07 08 //上传初始化 09 su.initialize(pageContext); 10 11 // 设定上传限制 12 //1.限制每个上传文件的最大长度。 13 su.setMaxFileSize(10000000); 14 15 //2.限制总上传数据的长度。 16 su.setTotalMaxFileSize(20000000); 17 18 //3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。 19 su.setAllowedFilesList("doc,txt,jpg,rar,mid,waw,mp3,gif"); 20 21 boolean sign = true; 22 23 //4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。 24 try { 25 su.setDeniedFilesList("exe,bat,jsp,htm,html"); 26 27 //上传文件 28 su.upload(); 29 //将上传文件保存到指定目录 30 su.save("c:\\"); 31 32 } catch (Exception e) { 33 e.printStackTrace(); 34 sign = false; 35 } 36 if(sign==true) 37 { 38 out.println("<script>parent.callback('upload file success')</script>"); 39 }else 40 { 41 out.println("<script>parent.callback('upload file error')</script>"); 42 } 43%>
我想知道这个parent.callback是返回到页面的哪个标签?这段代码是不是不会重新刷新页面?
test.html中有个iframe,其src为a.html,这个a.html中就是上传界面,和一般的上传一样,上传成功后,iframe刷新里,但是其父窗口test.html并没刷新
iframe上传成功后,返回一个值,用js输入其中parent就是指 父窗口test.html,parent.callback就是test.html的callback函数.
<script type="text/javascript"> 16 function callback(msg) 17 { 18 document.getElementById("file").outerHTML = document.getElementById("file").outerHTML; 19 document.getElementById("msg").innerHTML = "<font color=red>"+msg+"</font>"; 20 } 21 </script>