文件上传代码: public void uploadFile(){ try{ //创建临时文件夹 initFolder(); }catch(Exception e) { e.printStackTrace(); makeJS(request,out,"创建临时文件夹失败!"); return; } DiskFileUpload fu = new DiskFileUpload(); // 设置缓存最大文件尺寸,这里是10MB long sizeMax = 10*1024*1024; // 设置上传最大文件尺寸,这里是5MB long sizeMaxLimit = 5*1024*1024; // 设置编码 fu.setHeaderEncoding("GBK"); // 设置最大文件尺寸 fu.setSizeMax(sizeMax); // 设置缓冲区大小,这里是4kb fu.setSizeThreshold(1024 * 1024); // 设置临时目录: fu.setRepositoryPath(SAVE_PATH); // 得到所有的文件: List fileItems; try { fileItems = fu.parseRequest(request); Iterator i = fileItems.iterator(); // 依次处理每一个文件: while (i.hasNext()) { FileItem fi = (FileItem) i.next(); //验证文件大小不能超过5MB if(fi.getSize()> sizeMaxLimit){ //makeJS(request,out,"上传文件不能大于5MB!"); fi.delete();//删除临时文件 return; } //验证文件格式(doc、xls) if(!"application/msword".equals(fi.getContentType()) && !"application/vnd.ms-excel".equals(fi.getContentType())){ //makeJS(request,out,"上传文件只能是Excel或者Word格式!"); fi.delete();//删除临时文件 return; } // 获得文件名,这个文件名包括路径: //String fileName = DataFormat.getIsoStr(fi.getName()); String fileName = fi.getName(); String toReceiptName = System.currentTimeMillis() + fileName.substring(fileName.lastIndexOf(".")); // 写入文件,可以从fileName中提取文件名: fi.write(new File(SysConfig.RECEIPT_PATH + toReceiptName)); makeHtml(request,out,fileName,toReceiptName,fi.getContentType()); log.info("上传文件路径:" + fileName); } } catch (Exception e) { e.printStackTrace(); //makeJS(request,out,"上传文件失败!"); } } 要导入以下包: commons-fileupload-1.1.1.jar commons-io-1.4.jar