首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

这是啥缘故

2012-06-20 
这是啥原因?jsp文件:form idform1 methodpost actionupload.servlet enctypemultipart/form-d

这是啥原因?
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");

}

热点排行