简单解决 multipart/form-data 文件上传表单中 传递参数无法获取的办法! (解决办法:动态更改表单提交URL)
2012-05-09 14:02
1201 查看
在jsp(其它动态web页面好像也存在)中,如果要上传文件,表单的enctype就必须设定为"multipart/form-data"了,这样就能够传递文件数据,却无法传递参数,如下的表单: [xhtml] view plaincopyprint? 01.<form action="uploadImage.jsp" method="post" enctype="multipart/form-data" name="form1" onsubmit="javascript:checkForm(this);"> 02.请选择上传的图片 03. <input type="hidden" name="action" value="upload" /> 04. <input type="file" name="file"> 05.<input type="submit" name="Submit" value="上传"> 06. </form> <form action="uploadImage.jsp" method="post" enctype="multipart/form-data" name="form1" onsubmit="javascript:checkForm(this);"> 请选择上传的图片 <input type="hidden" name="action" value="upload" /> <input type="file" name="file"> <input type="submit" name="Submit" value="上传"> </form> 这是本人程序中的一段代码,本人是想传递一个参数过去的,可是怎么都无法传递过去,request.getParameter("action")总是null,开始还以为是程序问题,后来在百度上一看,发现大家都存在这个问题。 解决方法一: 通过实验发现在表单中的URL中附加参数可以在提交表单后获取到值,采用固定参数的方式,于是将上面的表单改为如下: [xhtml] view plaincopyprint? 01.<form action="uploadImage.jsp?action=upload" method="post" enctype="multipart/form-data" name="form1" onsubmit="javascript:checkForm(this);"> 02.请选择上传的图片 03. <input type="file" name="file"> 04.<input type="submit" name="Submit" value="上传"> 05. </form> <form action="uploadImage.jsp?action=upload" method="post" enctype="multipart/form-data" name="form1" onsubmit="javascript:checkForm(this);"> 请选择上传的图片 <input type="file" name="file"> <input type="submit" name="Submit" value="上传"> </form> request.getParameter("action")="upload",问题解决。当然这样的解决方法不是很完美,但是相比那些复杂的解决办法来说,这个是最简单的。 解决方法二: 在实际开发中可能一个表单会根据实际情况提交到不同的URL的情况,这种情况在采用了MVC的框架中尤其常见。最近几年时间里周公比较少写网页代码,偏重于设计和业务逻辑处理了,不过最近自己研究时遇到这么一个情况,发现一个不错的方法。原理是将原来的提交表单更改为普通的按钮,点击按钮时调用一个javascript方法,在这个方法里根据业务逻辑动态更改表单提交的URL,然后再调用javascript提交表单,经过验证不但能解决上面的问题,而且处理方式更灵活。代码如下: [xhtml] view plaincopyprint? 01.<script language="javascript" type="text/javascript"><!-- 02. //动态更改表单提交URL的示例 03. //代码:周公 04. //日期:2010-03-18 05. function changeSubmitUrl() 06. { 07. //定义表单要提交的URL,这里可以根据逻辑动态更改,甚至可以采用<%= url %>这种方式 08. var url="uploadImage.jsp?action=upload"; 09. //将表单的action的URL更改为我们希望提交的URL 10. document.form1.action=url; 11. //利用Javascript提交表单 12. document.form1.sumbit(); 13. } 14.// --></mce:script> 15.<form method="post" enctype="multipart/form-data" name="form1" onsubmit="javascript:checkForm(this);"> 16.请选择上传的图片 17. <input type="file" name="file"> 18.<input type="button" name="Submit" onclick="javascript:changeSubmitUrl();" value="上传"> 19. </form> <script language="javascript" type="text/javascript"><!-- //动态更改表单提交URL的示例 //代码:周公 //日期:2010-03-18 function changeSubmitUrl() { //定义表单要提交的URL,这里可以根据逻辑动态更改,甚至可以采用<%= url %>这种方式 var url="uploadImage.jsp?action=upload"; //将表单的action的URL更改为我们希望提交的URL document.form1.action=url; //利用Javascript提交表单 document.form1.sumbit(); } // --></mce:script> <form method="post" enctype="multipart/form-data" name="form1" onsubmit="javascript:checkForm(this);"> 请选择上传的图片 <input type="file" name="file"> <input type="button" name="Submit" onclick="javascript:changeSubmitUrl();" value="上传"> </form>
相关文章推荐
- 简单解决 multipart/form-data 文件上传表单中 传递参数无法获取的办法! (解决办法:动态更改表单提交URL)
- 解决multipart/form-data表单中传递参数问题(动态更改表单提交URL)
- 解决multipart/form-data表单中传递参数问题(动态更改表单提交URL)
- multipart/form-data 文件上传表单中 传递参数无法获取的原因!
- JSP学习笔记:用multipart/form-data提交表单get非文件字段获取的解决办法
- Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form me
- 上传文件form表单enctype="multipart/form-data"传值解决办法(代原代码)
- 关于form表单提交文件file后台controller中参数获取不到的解决办法
- 上传文件form表单enctype="multipart/form-data"传值解决办法(代原代码)
- enctype="multipart/form-data" 文件上传,获取form 表单参数的问题
- 文件上传下载时,在form表单中设置属性enctype=“multipart/form-data”的情况下,如何获取表单提交的值?
- 当提交带文件的的form(enctype="multipart/form-data")时,不能获得参数的解决办法
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- 表单提交文件无法获取的解决办法
- enctype="multipart/form-data"的表单无法获取表单中除了type=file以外的其他参数 commons-fileupload 获取除file外其他参数
- enctype="multipart/form-data"的表单无法获取表单中除了type=file以外的其他参数 commons-fileupload 获取除file外其他参数
- JFinal上传文件报Posted content type isn't multipart/form-data错误解决办法。
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- (原创)js提交文件,js上传文件,纯js解决无刷新文件上传,不使用form提交文件,并获取返回值(路径url)
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题