日期:2014-05-19  浏览次数:20894 次

这是啥原因?
jsp文件:
<form id="form1" method="post" action="upload.servlet" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="hidden" name="folder" value="/upload/temp/"/>
<input type="submit" value="提交"/>
</form>

servlet代码:
System.out.println(request.getParameter("folder"));

结果输出:
null

后来我把级水平改了一下:
<form id="form1" method="post" action="upload.servlet">
<input type="file" name="file"/>
<input type="hidden" name="folder" value="/upload/temp/"/>
<input type="submit" value="提交"/>
</form>

servlet不变,结果输出:
/upload/temp/

这是怎么回事呢?求解释!!!!

------解决方案--------------------
enctype=\"multipart/form-data\"是上传二进制数据; form里面的input的值以2进制的方式传过去。所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,
可以使用其他的上传组件
------解决方案--------------------
enctype="multipart/form-data"> 封装了request
------解决方案--------------------
List fileItems = upload.parseRequest(request);
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
item.getInputStream();
if (!item.isFormField()) {
//文件流
}else{
//非文件流 
String value=item.getString();
value = new String(value.getBytes("ISO-8859-1"),"UTF-8");

}