分析:
1.需上传文件,故在form表单中添加ENCTYPE="multipart/form-data"
2.需传递参数:学期
存在的问题:由于使用了ENCTYPE="multipart/form-data",故在下一个页面里面用request.getParameter("XX")是获取不到“学期”值的
问题处理过程:
1.一开始并不知道问题在于哪里,通过断点调试没找出原因,通过HttpAnalyzerStdV3跟踪分析,发现“学期”的值在第一个页面里是存在的,但是没post到下一个页面,下一个页面接收的值为null,反复分析排查后,才觉悟到问题出在ENCTYPE="multipart/form-data"上面
2.发现问题后,交给搜索引擎,发现网上早有人提过这样的问题了(但发现copy现象即为严重,很多人很不负责,自己没验证过就转帖了,望大哥大姐们验证一下,水贴不要乱贴 乱转),当然给出很多答案(正确与否就不想多说了)
3.小X SG一句话给了我灵感,这才意识到使用的是SmartUpload组件,故找到了对策
解决方法:由于是使用SmartUpload组件解决上传问题的,故使用SmartUpload组件的.getRequest().getParameter("XX")属性就可以获得“学期”的值了(当然一开始并没想到此方法,添加参数这一做法是后来加上去的),代码为:String XX=(String)mySmartUpload.getRequest().getParameter("XX");
PS:
若XX中含有中文时,则会出现乱码现象
处理方法如下:将提交页面的编码方式改为GBK,post后接收的页面的编码方式也改为GBK就OK了
<%@ page contentType="text/html; charset=GBK" language="java" errorPage=""%>
如果还要传递到下一个页面,可以这样解决乱码问题:编码方式可以采用gb2312,然后转一下码,代码如下:
String XX=request.getParameter("XX");
XX=new String(XX.getBytes("ISO8859_1"),"GB2312");
这样就OK了
分享到:
相关推荐
标题提到的“上传文件fileupload+解决enctype= multipart/form-data无法传递其他参数”是一个常见的技术挑战,特别是当使用HTML表单进行文件上传时。`multipart/form-data`是用于处理包含二进制数据(如文件)的表单...
当`enctype`设置为`multipart/form-data`时,这表明表单将包含二进制数据,如文件上传。这种编码方式允许表单数据(包括文件)作为多个部分发送,每个部分都有自己的MIME类型。这是处理文件上传的标准方式,因为它...
servlet上传 enctype="multipart/form-data" servlet上传 enctype="multipart/form-data
### 解决Java enctype "multipart/form-data" 文件上传传值问题 在Java Web开发中,处理文件上传是一项常见的任务。特别是当涉及到使用`multipart/form-data`作为表单的编码类型时,这种需求更为突出。本文将深入...
在Java Web开发中,我们经常遇到表单提交数据的情况,特别是涉及到文件上传时,`<form>`标签的`ENCTYPE`属性通常会被设置为`multipart/form-data`。这是因为`multipart/form-data`允许在请求中携带二进制数据,如...
在Web开发中,`multipart/form-data`是一种用于发送表单数据的编码类型,尤其适用于处理文件上传。此编码方式能够使客户端浏览器将表单中的普通文本字段与文件字段一起发送到服务器端进行处理。 #### 标题解析 - **...
我们都知道要让form能提交文件,需要在form上指定enctype=multipart/form-data的attribute,这样才能上传文件,关于enctype的文章很多,就不再做解释。 问题是因为使用了MVC的Html.BeginForm()来输出表单代码,默认...
本文介绍了Node Js 使用KOA处理form-data格式传输过来的文件,分享给大家。...form表单【注意:enctype=”multipart/form-data”】上传文件时,首先会将文件上传到你本机的temp目录,然后执行move_upload_file
阿贾克斯形式这是一个js事件监听器,可让您以最简单的方式使用ajax提交任何表单。 只需将类“ .ajax_form”添加到您的表单中,瞧,您的表单将开始... 只需将常规enctype =“ multipart / form-data”包含在表单元素中
multipart/form-data是另一种常用的编码格式,它将窗体数据编码为一条消息,页上的每个控件对应消息中的一个部分。这种编码格式可以上传文件,并且可以处理复杂的数据结构。 在实际开发中,我们需要根据具体情况...
值得一提的是,在HTML中,表单上传文件时必须设置其enctype属性为multipart/form-data,因为默认值是application/x-www-form-urlencoded,这不支持文件上传。 JavaScript中,XMLHttpRequest Level 2引入了FormData...
控件,form 表单需要设置 enctype=”multipart/form-data” 属性。比如: <body> <form action=UploadFile.php method=post enctype=multipart/form-data> <input type=file name=fileUpload /&...
在本文中,我们将深入探讨如何使用`mongoose.c`库实现多表单域(多input项)的文件上传功能。`mongoose.c`是一个轻量级的Web服务器C库,它允许开发者构建自己的HTTP服务器,处理包括文件上传在内的各种HTTP请求。 ...
2. **multipart/form-data**:当需要上传文件时,表单的`enctype`属性应设为`multipart/form-data`。这种方式将数据分割成多个部分,每个部分都有一个边界标识,这样可以同时发送文本和二进制数据(如图片)。每个...
穆特尔 Multer是用于处理multipart/form-data的node.js中间件,主要用于上传文件。 它是在之上编写的,以实现最大效率。 注意:Multer将不处理任何非多multipart/form-data ( multipart/form-data )。翻译该自述...
这里的`enctype="multipart/form-data"`是关键,它指示浏览器以多部分数据格式发送表单数据,适合处理文件上传。 2. Java Servlet处理文件上传: 在后台,我们需要一个Servlet来接收并处理这些文件。Java的Servlet ...
form id="form1" runat="server" action="UserManageHandler.ashx" method="post" enctype="multipart/form-data"> 名称: <input type="text" name="uname" class="uname" /> 邮件: <input ...
另外,还需要增加上传的属性enctype= “multipart/form-data”,该属性说明浏览器可以提供文件上传功能。 2.编写处理表单提交的PHP脚本 当用户通过上传表单选择一个文件并提交后,PHP会自动生成一个$_FILES的二维...
本文实例讲述了Django框架文件上传与自定义图片上传路径、上传文件名操作。分享给大家供大家参考,具体如下: ...method=post enctype=multipart/form-data> 文件数据存储在request.FILES属性中 文件上传必须使用P