java如何获取jsp页面上传的文件路径

前台jsp:
<form action="AA.do?method=yktAdd" method="post" >
<input type='text' name='textfield' id='textfield' class='txt' />
<input type='button' class='btn' value='浏览...' />
<input type="file" name="excel" class="file" id="fileField" size="28" onchange="document.getElementById('textfield').value=this.value" />
<input type="submit" name="submit" class="btn" value="添加" />
</form>
后台:
public ActionForward yktAdd(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {

String path=request.getParameter("excel");
System.out.println(path);
return mapping.findForward("yktadd");
}
程序得到的结果:XXX.xls
我想获取的结果是:D:\XXX.xls 这种全路径
只需要一个路径就行了,但是查了好多资料,都不成功,求大神解救!!!!!!

java文件中获得路径
Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径
ClassLoader.getSystemResource("")
Class_Name.class.getClassLoader().getResource("")
Class_Name.class .getResource("/")
Class_Name.class .getResource("") // 获得当前类所在路径
System.getProperty("user.dir") // 获得项目根目录的绝对路径
System.getProperty("java.class.path") //得到类路径和包路径
打印输出依次如下:
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/
F:\work_litao\uri_test
F:\work_litao\uri_test\WebContent\WEB-INF\classes;F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar
2、 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径  :application.getRealPath(request.getRequestURI());
当前web应用的绝对路径 :application.getRealPath("/");
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()
3.1 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径  :application.getRealPath(request.getRequestURI());
当前web应用的绝对路径 :application.getRealPath("/");
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()
3、Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())
webapp路径:request.getSession().getServletContext().getRealPath("/")
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
(ServletContext对象获得几种方式:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()
)
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-05
1、获取上传的文件路径,这个还真没试过。百度了一下,网友们的意见是:浏览器版本太高,从安全角度,禁止获取全文件路径,你可以换低版本浏览器试试,不保证正确。 有结果希望告知一下

2、一般文件上传是获取文件流,然后本地new出来保存在服务器上。
第2个回答  2014-03-05

楼主:用基础的java我不知道怎么实现。但是但第三方jar包完全可以。而且上传文件方便。

代码给你:

private ServletConfig config;


@Override

public void init(ServletConfig config) throws ServletException {

// TODO Auto-generated method stub

this.config = config;

}

// TODO Auto-generated method stub

FileItemFactory factory = new DiskFileItemFactory();

// Create a new file upload handler

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setHeaderEncoding("utf-8");



String serverPath = config.getServletContext().getRealPath("/")

.replace("\\", "/");

try {

List<FileItem> items = upload.parseRequest(req);

for (FileItem item : items) {

if (!item.isFormField()) {

String filedName = item.getName();

System.out.println(filedName);//这个名称就是全路径 下面是保存到服务器指定路径。

// 获取文件后缀

String ext = filedName

.substring(filedName.lastIndexOf("."));

String filexx = UUID.randomUUID().toString();

String url = serverPath + "noteimage/" + filexx + ext;

String url1 = "noteimage/" + filexx + ext;

// 保存到指定路径

item.write(new File(url));

req.setAttribute("imageurl", url);

resp.getWriter().write(url1);

}


}

} catch (Exception e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}


另外上传文件的form   不得写上encType="multipart/form-data" 表明上传的是文件么


第3个回答  2014-03-05
使用FormFile这个类
定义一个FormBean
public class TestForm{
FormFile file;
private void setFile(FormFile file){
this.file = file;

}
public FormFile getFile(){
return file;
}
}
jsp页面
<input type="file" name="file">
ActionBean
方法中这样写
TestForm tForm = (TestForm)form;// 获取表单
FormFile file = bForm.getFile();
file.getFilePath(); // 获取文件路径追问

按照你的方法获取不了,什么情况。你本机试过可以获取吗

本回答被网友采纳
第4个回答  2014-03-05
正如一楼所说,浏览器版本太高,从安全角度,禁止获取全文件路径,你可以换低版本浏览器试试,不保证正确,但是你可以获取到自己上传到的服务器的文件的全路径

JavaWeb项目如何获取文件路径?
1、获取文件的绝对路径 例如在`index.jsp`页面中,通过`request.getServletContext().getRealPath("file_name")`获取文件的绝对路径。2、获取访问的servlet路径 通过`request.getRequestURI()`获取请求的完整路径。3、获取当前jsp页面的访问路径 通过`request.getRequestURL()`获取当前jsp页面的访问路径。4...

如何得到一个jsp页面所在的项目的路径
(4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp")结果:D:\\resin\\webapps\\TEST\\test.jsp (5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();结果:D:\\resin\\webapps\\TEST 2.在类中取得路径:(1)类的...

JSP页面中如何获取浏览路径?java
1.可以在servlet的init方法里 String path = getServletContext().getRealPath("\/");这将获取web项目的全路径 例如 :E:\\eclipseM9\\workspace\\tree\\ tree是我web项目的根目录 2.你也可以随时在任意的class里调用 this.getClass().getClassLoader().getResource("\/").getPath();这将获取 到classes...

javaWEB如何从前台jsp界面找到后台所对应的文件
如果是Spring框架,看web.xml配置文件,根据请求参数找到控制器再找到对应的类。找到类转发的地址就是对应的jsp文件了。

java 怎么获取web根目录?
在java中获得文件的路径在我们做上传文件操作时是不可避免的。 web 上运行 1:this.getClass().getClassLoader().getResource("\/").getPath(); this.getClass().getClassLoader().getResource("").getPath(); 得到的是 ClassPath的绝对URI路径。以工程名为TEST为例:(1)得到包含工程名的当前...

java-SpringMVC 后台怎么获取前台jsp页面中file中的文件
form的enctype=”multipart\/form-data” 这个是上传文件必须的2.applicationContext.xml中 <bean id=”multipartResolver” class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”\/> 关于文件上传的配置不 Controller public class UploadAction { RequestMapping(value = "\/upload.do")pu...

在jsp页面使用java代码,获取html页面中所有script标签里面的src 路径...
public static void main(String[] args) throws Exception { Reader reader=new FileReader("d:\/NewFile.html"); String content="";\/\/每一行 \/\/写入文件 Writer writer=new FileWriter(new File("d:\/want.txt")); \/\/缓冲流封装一下,读写方便 BufferedWriter bw=new Buffere...

java编程:怎么用JSP(javabean)上传一张图片到服务器的指定文件夹呢?
su.upload();\/\/执行上传 }catch(Exception ex){ ex.printStackTrace;} File file=su.getFile().getFile(0); \/\/(得到单个的上传文件的信息)这里得到的File对象是你到的jar包里的com.jspsmart.upload.File类型 别写成IO 里面的File了 String filepath="upload\\\\"; \/\/在这之前要在你所建项目...

如何获取项目绝对路径?
一、用Jsp获取 1、获取文件的绝对路径 String file="文件";(例如:data.mdb)String path=application.getRealPath(file);2、获取文件的绝对路径 String p2=request.getRequestURI();3、获取当前jsp页面的路径 String p3=request.getContextPath();4、获取当前项目的路径 String p4=request.getServlet...

Java获取当前路径的几种方法
1、利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));\/\/user.dir指定了当前的路径 2、使用File提供的函数获取当前路径:File directory = new File("");\/\/设定为当前文件夹 try{ System.out.println(directory.getCanonicalPath());\/\/获取标准的路径 Sy...

相似回答