使用环境如下:JBuilder2006,Tomcat5.5,fileupload-1.1.1
表单代码如下:
<form action="uploadhand" method="POST" enctype="multipart/form-data">
<table>
<tr>
<td>请选择要上传的文件:</td>
<td>
<input type="file" name="file1" size="40"/>
</td>
</tr>
<tr>
<td>请文件的描述:</td>
<td>
<input type="text" name="desc1" size="40"/>
</td>
</tr>
<tr>
<td>请选择要上传的文件:</td>
<td>
<input type="file" name="file2" size="40"/>
</td>
</tr>
<tr>
<td>请文件的描述:</td>
<td>
<input type="text" name="desc2" size="40"/>
</td>
</tr>
<tr>
<td><input type="submit" value="提交" /></td>
<td><input type="reset" value="重填" /></td>
</tr>
</table>servlet中用fileItems = upload.parseRequest(request);
进行时在表单中不管填什么都提示fileItems为null.请高手指点.
表单代码如下:
<form action="uploadhand" method="POST" enctype="multipart/form-data">
<table>
<tr>
<td>请选择要上传的文件:</td>
<td>
<input type="file" name="file1" size="40"/>
</td>
</tr>
<tr>
<td>请文件的描述:</td>
<td>
<input type="text" name="desc1" size="40"/>
</td>
</tr>
<tr>
<td>请选择要上传的文件:</td>
<td>
<input type="file" name="file2" size="40"/>
</td>
</tr>
<tr>
<td>请文件的描述:</td>
<td>
<input type="text" name="desc2" size="40"/>
</td>
</tr>
<tr>
<td><input type="submit" value="提交" /></td>
<td><input type="reset" value="重填" /></td>
</tr>
</table>servlet中用fileItems = upload.parseRequest(request);
进行时在表单中不管填什么都提示fileItems为null.请高手指点.
下面是servlet中的代码
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
//设置内存缓冲区的域值
factory.setSizeThreshold(4096); //设置当内容大于内存缓冲区的域值时,设置文件的存储位置。
factory.setRepository(new File("/tmp"));
ServletFileUpload upload = new ServletFileUpload(factory);
//DiskFileUpload upload = new DiskFileUpload(factory);
//设置上传文件的最大值。
upload.setSizeMax(1000000); List fileItems = null;
try {
fileItems = upload.parseRequest(request);
} catch (FileUploadException ex) {
}
//传过来两个文件,第一个文件是一个简单的文本文件;第二个文
//不知道大小并且将写到服务器中。
if (fileItems != null) {
Iterator iterator = fileItems.iterator();
while (iterator.hasNext()) {
FileItem fileItem = (FileItem) iterator.next(); //判断是否是文件域的表单信息.
if (!fileItem.isFormField()) {
//获取上传的文件名(包括路径)
String fileName = fileItem.getName();
long size = fileItem.getSize();
System.out.println("fileName:" + fileName);
System.out.println("size:" + size); int index = fileName.lastIndexOf(File.separator);
if (index > 0) {
fileName = fileName.substring(index + 1,
fileName.length());
} File toFile = null;
//打开文件
toFile = new File("E:\\uploadFile", fileName);
//当文件不存在时创建文件.
if (!toFile.exists()) {
//创建文件前,先看是否存在目录.先获取目录.
File dir = toFile.getParentFile();
//当目录不存在时,创建目录.
if (!dir.exists()) {
dir.mkdirs();
}
//有了目录后再创建文件,这样就不会创建文件失败.
toFile.createNewFile();
}
//写文件
try {
fileItem.write(toFile);
System.out.println("上传成功");
} catch (Exception ex1) {
System.out.println("上传失败");
ex1.printStackTrace();
}
} }
}
}
可进行时总是提示空引用.