下面的代码结合SmartUpload:

SmartUpload   uploadBean   =   new   SmartUpload();
uploadBean.initialize(pageContext);
uploadBean.upload();

StringAction   stringBean   =   new   StringAction();

String   fileSavePath   =   request.getRequestURI();
fileSavePath   =   stringBean.stringSplit(fileSavePath,   "/ ")[0];
fileSavePath   =   "\\ "   +   fileSavePath   +   "\\Documents\\ ";

ServletContext   servletContext   =   pageContext.getServletContext();
String   realPath   =   servletContext.getRealPath( "/ ");
java.io.File   javaFile   =   new   java.io.File(realPath,   fileSavePath);
try
{
      if(!javaFile.exists())
      {
          javaFile.mkdirs();
      }
}
catch(Exception   ex)
{
    ex.printStackTrace();
}
try
{
    upload.save(relativePath);
}
catch(Exception   e)
{
    e.printStackTrace();
}

上述代码中的fileSavePath就是想上载到的相对目录

 

 

另外:

在Servlet与JSP中取得当前文件所在的相对路径与绝对路径- -


<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.io.*" %>
<%
//在Servlet与JSP中取得当前文件所在的相对路径与绝对路径

//JSP中

out.println("根目录所对应的绝对路径:" + request.getRequestURI() + "<br/>");

String strPathFile = application.getRealPath(request.getRequestURI());
out.println("文件的绝对路径:" + strPathFile+ "<br/>");
out.println(application.getRealPath(request.getRequestURI()));
String strDirPath = new File(application.getRealPath(request.getRequestURI())).getParent();
out.println("目录的绝对路径:" + strDirPath + "<br/>");
%>

//Servlet中
//JSP中的application对象就是Servlet中的ServerContext,所以在Servlet中是如此获得
//import java.io.File;

System.out.println("根目录所对应的绝对路径:" + request.getServletPath() + "<br/>");

String strPathFile = request.getSession().getServletContext().getRealPath(request.getRequestURI());
System.out.println("文件的绝对路径:" + strPathFile + "<br/>");

String strDirPath = new File(request.getSession().getServletContext().getRealPath(request.getRequestURI())).getParent();
System.out.println("目录的绝对路径:" + strDirPath + "<br/>");

文件名不能包括以下字符:\/:*?"<>|

获取Web项目的全路径
String strDirPath = getServletContext().getRealPath("/");