<%
  String path=request.getContextPath();
  String uploadPath=path+"\\uploadfile\\upload";// 上传文件的目录
  String tempPath = "c:\\uploadfile\\tmp\\"; // 临时文件目录
  String filename="";
  Date dd=new Date();
  // System.out.println("upload"+dd.getTime()+"新的");
  filename="upload"+dd.getTime()+"";
  boolean isMultipart=FileUpload.isMultipartContent(request);
  if(!isMultipart){
  response.sendRedirect("fileupload.html");
  }
  try{
  // 实例化一个硬盘文件工厂,用来配置上传组件fileupload
  DiskFileItemFactory factory=new DiskFileItemFactory();
  // 设置上传文件时用于临时存放文件的大小,这里是1024K,大于此大小的文件无法上传
  factory.setSizeThreshold(1024000);
  // 设置存放临时文件的目录
  File temp=new File(tempPath);
  // factory.setRepository(new File(tempPath));
  factory.setRepository(temp);
  //用以上工厂实例对象创建文件上传处理器
  FileUpload fileupload=new FileUpload(factory);
  //设置最大上传量为100M
  fileupload.setSizeMax(100*1024*1024);
  // 从request得到 所有 上传域的列表
  List items=fileupload.parseRequest(request);
  // 得到所有上传的文件
  Iterator itr=items.iterator();
  // 循环处理所有文件
  while(itr.hasNext()){
  // 得到当前文件
  FileItem fileitem=(FileItem)itr.next();
  // 忽略其他不是文件域的所有表单信息
  if(!fileitem.isFormField()){
// 得到文件的完整路径
  String name=fileitem.getName();
  System.out.println(name);
  // 得到去除路径的文件名
  name=name.substring(name.lastIndexOf("\\")+1,name.length());
  // System.out.println(name+"wwww");
  // 得到文件的大小
  long size=fileitem.getSize();
  if((name==null||name.equals(""))&&size==0)
  continue;
  //获取文件类型(文件的扩展名)
  name=name.substring(name.lastIndexOf('.'),name.length());
  // System.out.println(uploadPath+File.separator+filename+name);
  // 保存文件
 fileitem.write(new File(uploadPath+File.separator+filename+name));
  }
  }
  }catch(Exception e){
  e.printStackTrace();
  }
  response.sendRedirect("fileupload.html");
  %>
    
问题是上传文件的时候报错说java.io.FileNotFoundException: \fileupload\uploadfile\upload\upload1292147946657.txt (系统找不到指定的路径。)我知道是我建的文件夹和程序的不一致,请帮忙改怎按这个程序建相应的文件夹啊?
在webroot下建 uploadfile再在uploadfile下建 upload
还是不行

解决方案 »

  1.   

    http://www.javaeye.com/topic/117978
    看看这个
      

  2.   

    不是在WEBROOT下建,是在你工程ROOT下建,例如你的工程名叫AAA,就在AAA的目錄下,也就是WEBROOT的上級目錄
      

  3.   

    跟你的WEB-INF 同级
    或者你在程序里面把你的工程的根目录的绝对路径打出来就明确了
      

  4.   

    此楼正解:你只需要在你的Web-Root下面 创建uploadfile和upload两个文件夹就可以了
    **是要在编译器里面创建
      

  5.   

    这个应该是在你服务器下面的\\uploadfile\\upload而不是在项目下的\\uploadfile\\upload