文件上传控件()无法提交的问题

yanqlv 2006-08-31 01:07:48
问题是这样,我在某项目中需要在页面里上传文件,
我在该页面里用了两个form(form1和form2),

form1用于一般变量的提交,声明如下:
<form name="form1" method="post" action="<%=CommonObjects.SERVLET_ROOT%>StudentInfoServlet">
......
</form>

form2专门用于上传文件,声明如下:
<form name="form2" method="post" ENCTYPE="multipart/form-data" action="<%=CommonObjects.SERVLET_ROOT%>UploadServlet">
<input type="hidden" name="process_id" value="-1">
<input type="hidden" name="compart_symbol" value="1">
<input type="file" name="import_txt" style="display:none">
</form>

提交部分的代码如下(我把文件上传控件隐藏,用js代码打开,后面又打开了一个自设的模式对话框):
function doImportTxt(){
document.form2.import_txt.select();
document.form2.import_txt.click();
if(document.form2.import_txt.value!=''){
var r_sel = window.showModalDialog('ImportTxtFormat.jsp','','dialogWidth:380px;dialogHeight:125px;resizable:no;status:no;help:no;scroll:no');
if( r_sel !=''){
document.form2.compart_symbol.value=r_sel;
document.form2.process_id.value='4';
alert('1');
document.form2.submit(); //把这里改成form1就可以提交
}
}

}
问题是:把上面语句里的最后一句submit无法执行提交,而把form2改成form1却可以执行提交,
不知道是什么原因.


...全文
585 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenxiaohan 2006-11-30
  • 打赏
  • 举报
回复
应该是form2 在提叫时出现了拒绝访问错误。
yanqlv 2006-09-08
  • 打赏
  • 举报
回复
我在提交前用alert(document.form2.action)打印出来了,正确,是"/servlet/UploadServlet",这和alert(document.form1.action)打印出来的
"/servlet/StudentInfoServlet"形式上没什么区别呀,
也就是说这个action的url在web程序里配置和其他的完全一样啊,
可根本不提交,也不刷新,

要不,你看看我的web程序的web.xml
<?xml version="1.0" encoding="GB2312"?>
<!--
Copyright 2006 Computer Science Department, Luoyang Normal University
-->
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

<display-name>J2EE网络考试系统</display-name>
<description>
Web Examination System based on J2EE
</description>

<servlet>
<servlet-name>StudentInfoServlet</servlet-name>
<servlet-class>edu.lynu.webexam.servlet.StudentInfoServlet</servlet-class>
</servlet>

<servlet>
<servlet-name>UploadServlet</servlet-name>
<servlet-class>edu.lynu.webexam.servlet.UploadServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>StudentInfoServlet</servlet-name>
<url-pattern>/servlet/StudentInfoServlet</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>UploadServlet</servlet-name>
<url-pattern>/servlet/UploadServlet</url-pattern>
</servlet-mapping>

</web-app>

百思不得其解
yanqlv 2006-09-01
  • 打赏
  • 举报
回复
楼上的,我知道你怀疑我的action不对,
应该不是,因为我把form2的action改成和form1一样,就不行.
应该和java代码没关系
hbhbhbhbhb1021 2006-09-01
  • 打赏
  • 举报
回复
这种情况很多原因,包括你的WEB层的JAVA代码如果用什么包的话,版本不一致都有可能出现这种情况,先看看元素的name和action后的值是不是符合URL格式
yanqlv 2006-09-01
  • 打赏
  • 举报
回复
看了,没有.
form2上面的代码就是完整的.
wshuangminlg 2006-09-01
  • 打赏
  • 举报
回复
帮顶
hbhbhbhbhb1021 2006-09-01
  • 打赏
  • 举报
回复
不完全是,我以前见过一个form什么都没改,架构在提交的时候,我忘了是过滤器还是什么的JAVA程序的版本不一致也有这样的情况。
ice_berg16 2006-08-31
  • 打赏
  • 举报
回复
看看是不是form2有一个name="submit"的按钮

87,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧