原始JSP表单页面结构:<form action="save.jsp" method=post>
<table width="681" height="590" border="1">
添加记录
客户名称:
<input name="cname" type="text">
网站地址:
<input name="webaddress" type="text">
客户类型:
<select name="select" size="1">
<option>装饰设计类</option>
<option>酒店类</option>
<option>医疗器械类</option>
<option>企业类</option>
</select>
企业介绍:</span></p>
<textarea name="describe" cols="35" rows="5" wrap="PHYSICAL" class="style7"></textarea> <input name="Submit1" type="reset" value="重置">
<input name="Submit2" type="submit" value="提交">
</form>添加一个type="file"后,提交到save.jsp后,request.getParameter("cname");得到的数据就变成null的了!~为啥?<form action="save.jsp" enctype="multipart/form-data" method=post>
<table width="681" height="590" border="1">
添加记录
客户名称:
<input name="cname" type="text" >
网站地址:
<input name="webaddress" type="text" >
图片地址:(JPG & GIF)
<input name="file" type="file" >
客户类型:
<select name="select" size="1">
<option>装饰设计类</option>
<option>酒店类</option>
<option>医疗器械类</option>
<option>企业类</option>
</select>
企业介绍:</span></p>
<textarea name="describe" cols="35" rows="5" wrap="PHYSICAL" class="style7"></textarea> <input name="Submit1" type="reset" value="重置">
<input name="Submit2" type="submit" value="提交">save.jsp页面部分代码:
</form>
<%@ page contentType="text/html"%>
<%@ page pageEncoding="GB2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%
String cname=request.getParameter("cname"); //客户名
//byte a[] = cname.getBytes("ISO-8859-1");
//cname = new String(a);
String webaddress=request.getParameter("webaddress"); //网站地址
//byte b[] = webaddress.getBytes("ISO-8859-1");
//webaddress = new String(b);
String picfile=request.getParameter("file"); //上传图片String select=request.getParameter("select"); //图片类型
//byte c[] = select.getBytes("ISO-8859-1");
//select = new String(c);
String describe=request.getParameter("describe"); //网站描述
//byte d[] = describe.getBytes("ISO-8859-1");
//describe = new String(d);out.print("<br>你提交的客户名为:"+cname);
out.print("<br>你提交的网站地址为:"+webaddress);
out.print("<br>你提交的图片类型为:"+picfile);
out.print("<br>你提交的图片地址:"+select);
out.print("<br>你提交的客户描述信息为:"+describe);
.............
.........
.....
..
.
<table width="681" height="590" border="1">
添加记录
客户名称:
<input name="cname" type="text">
网站地址:
<input name="webaddress" type="text">
客户类型:
<select name="select" size="1">
<option>装饰设计类</option>
<option>酒店类</option>
<option>医疗器械类</option>
<option>企业类</option>
</select>
企业介绍:</span></p>
<textarea name="describe" cols="35" rows="5" wrap="PHYSICAL" class="style7"></textarea> <input name="Submit1" type="reset" value="重置">
<input name="Submit2" type="submit" value="提交">
</form>添加一个type="file"后,提交到save.jsp后,request.getParameter("cname");得到的数据就变成null的了!~为啥?<form action="save.jsp" enctype="multipart/form-data" method=post>
<table width="681" height="590" border="1">
添加记录
客户名称:
<input name="cname" type="text" >
网站地址:
<input name="webaddress" type="text" >
图片地址:(JPG & GIF)
<input name="file" type="file" >
客户类型:
<select name="select" size="1">
<option>装饰设计类</option>
<option>酒店类</option>
<option>医疗器械类</option>
<option>企业类</option>
</select>
企业介绍:</span></p>
<textarea name="describe" cols="35" rows="5" wrap="PHYSICAL" class="style7"></textarea> <input name="Submit1" type="reset" value="重置">
<input name="Submit2" type="submit" value="提交">save.jsp页面部分代码:
</form>
<%@ page contentType="text/html"%>
<%@ page pageEncoding="GB2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%
String cname=request.getParameter("cname"); //客户名
//byte a[] = cname.getBytes("ISO-8859-1");
//cname = new String(a);
String webaddress=request.getParameter("webaddress"); //网站地址
//byte b[] = webaddress.getBytes("ISO-8859-1");
//webaddress = new String(b);
String picfile=request.getParameter("file"); //上传图片String select=request.getParameter("select"); //图片类型
//byte c[] = select.getBytes("ISO-8859-1");
//select = new String(c);
String describe=request.getParameter("describe"); //网站描述
//byte d[] = describe.getBytes("ISO-8859-1");
//describe = new String(d);out.print("<br>你提交的客户名为:"+cname);
out.print("<br>你提交的网站地址为:"+webaddress);
out.print("<br>你提交的图片类型为:"+picfile);
out.print("<br>你提交的图片地址:"+select);
out.print("<br>你提交的客户描述信息为:"+describe);
.............
.........
.....
..
.
所以你再用request.getParameter是不行地。
jspSmartUpload、fileupload
都是很好的东西,而且处理输入流也非常方便。
====================================
引自:http://sylinx-yqg.javaeye.com/blog/106712
用jspSmartUpload上传文件同时获得参数的方法。
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。
但是设置了 enctype="multipart/form-data" ,除了file类型表单能获取到,其他value通过request.getParameter都得不到。SmartUpload提供的解决的方法是 用如下:
SmartUpload su = new com.jspsmart.upload.,通过 su.getRequest().getParameter("value");就可以了,su.upload()必须放在前面,测试中将su.upload()放在获取参数后面不成功。这里SmartUpload 已经自动解决中文乱码的问题,不用再转化!
=====================================
引自:http://chinesedocument.com/html/jishuxueyuan/J2EE/Servlet_Jsp/20070412/3731.html
FileUpload fu = new FileUpload();
...
List fileItems = fu.parseRequest(request);
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
//忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
if((name==null||name.equals(“”)) && size==0)
continue;
...
}
<option>装饰设计类 </option>
<option>酒店类 </option>
<option>医疗器械类 </option>
<option>企业类 </option>
</select> 这些option是不是给它一个value啊.是不是没有属性就是它的text呢?
<select name="select" size="1">
<option value="装饰设计类 ">装饰设计类 </option>
<option value="酒店类 ">酒店类 </option>
<option value="医疗器械类">医疗器械类 </option>
<option value="企业类">企业类 </option>
</select> 关于用到的文件上传的确是通过request取不到参数值的.我用一个上传工具是通过它里边的方法去取得参数的.
-------------------------DiskFileUpload~
用它来处理上传的文件也挺好的~
lz搜下~
我就用的Apache的Fileupload组件,请问有解决的办法没?
表单和图片是要同时提交的。
好多JSP网站肯定也有类似的页面,这个应该有解决的办法。
遇到过这样的问题的给小弟传点资料看看.
我还想用Apache的Fileupload组件.....
楼上的兄弟,报错了!~
所以你再用request.getParameter是不行地。
上传播文件还是用控件吧,jspSmartUpload很简单的。
请问又解决的办法没?
文章的真正出处,恐怕也难了.hehe~
转来转去就是没有有关表单信息与文件信息一同提交遇到的问题的文章!~
胲~这可如何是好?
方法:
.
...
.......
..........
while (iter.hasNext()) {
FileItem item = (FileItem)iter.next();
String fieldName=item.getFieldName(); //取得上传表单内所定义的单行文本框里的内容.
if(fieldName.equals("cname") ){
cname=item.getString();
}
if(fieldName.equals("webaddress") ){
webaddress=item.getString();
}
if(fieldName.equals("file") ){
imgpath=item.getString();//注意此处的imgpath获得是图片数据,而不是上传前的路径。如果获得上传前路径建议使用imgpath=item.getName();
if(fieldName.equals("select") ){
select=item.getString();
}
if(fieldName.equals("describe") ){
describe=item.getString();
}
...........
......
..