日期:2014-05-17  浏览次数:21011 次

从网上下载了commons-fileupload-1.0.jar,试着做一个文件上传,遇到了点怪问题
代码如下:
System.out.println("************");
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是4MB
fu.setSizeMax(4194304);
// 设置缓冲区大小,这里是4kb
fu.setSizeThreshold(4096);
// 设置临时目录:
fu.setRepositoryPath(tempPath);
System.out.println("设置成功!!!");
// 得到所有的文件:
List fileItems = fu.parseRequest(request);
System.out.println("获取文件成功!!!");
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while(i.hasNext()) {
System.out.println("i====="+String.valueOf(i));
FileItem fi = (FileItem)i.next();
// 获得文件名,这个文件名包括路径:
String fileName = fi.getName();
if(fileName!=null&&!fileName.equals("")){
System.out.println("Filename========" + fileName);
String fileName2 = fileName.substring(fileName.lastIndexOf("\\"),fileName.length());
System.out.println("fileName2=======" + fileName2);
// 在这里可以记录用户和文件信息
// ...
// 写入文件,可以从fileName中提取文件名:
String s_save = request.getSession().getServletContext().getRealPath("/test");
System.out.println("save_path===" + s_save);
fi.write(new File(s_save + fileName2));
System.out.println("upload finish");
}

}

问题:我上传txt,java,jsp这些文件都没有问题,但是上传xls,doc之类的文件,就会出错,System.out到“设置成功”,后面的“获取文件成功”就出不出来,不知道什么原因,各帮帮忙。

------解决方案--------------------
可能你的缓存区太小,才4K,呵呵,只是猜测而已,不敢轻易下定论!
------解决方案--------------------
探讨
可能你的缓存区太小,才4K,呵呵,只是猜测而已,不敢轻易下定论!