对原来的Upload又重新用JDK1.5重写了一次.因为JDK已经发布1.6了,如果你还在用1.4,那你只好自己
根据我的思路翻译了.这个Bean最初是我在2002年写的(在此之前的文章当然是别人的原创),然后网上就出了
很多修改一些变量名,方法名或类名的各种版本,当然"版权"也就成了这些修改者的了.2002年我的原文在cnJBB
上,可以在那儿搜索到.
对这个Bean使用是非常简单.下面提供测试的代码.但愿意不再有人再问这个问题了.
html内容:
<form method="POST" action="http://localhost/servlet/debug.ServletTest?ccc=1&ccc=2" enctype="multipart/form-data">
<input type="text" name="aaa"><br/>
<input type="checkbox" name="bbb">b1<br/>
<input type="checkbox" name="bbb">b2<br/>
<input type="checkbox" name="bbb">b3<br/>
<br/>
<input type="file" name="filefeild"><br/>
<input type="file" name="filefeild"><br/>
<br/>
<input type="submit">
</form>
调用Bean的Servlet为:
public void service(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
Upload up = new Upload();
up.init(request);
//在此之前request只能获取header,不能有获取实体的调用,即不能getInputStream或getParameter
up.setSaveDir("d:/test/");
up.setTagFileName("test.dat");//只对第一个文件起作用
//这里可以设置其经属性.
up.uploadFile();
String aaa = up.getParameter("aaa");
String[] bbb = up.getParameterValues("bbb");
String[] ccc = up.getParameterValues("ccc");
String[] fileName = up.getFileName();
up.clear();
System.out.println("aaa="+aaa);
for(int i=0;i<bbb.length;i++)
System.out.println("bbb="+bbb[i]);
for(int i=0;i<ccc.length;i++)
System.out.println("ccc="+ccc[i]);
for(int i=0;i<fileName.length;i++)
System.out.println(fileName[i]+":"+