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

前台jsp:<formaction="AA.do?method=yktAdd"method="post"><inputtype='text'name='textfield... 前台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 这种全路径
只需要一个路径就行了,但是查了好多资料,都不成功,求大神解救!!!!!!
展开
 我来答
day忘不掉的痛
推荐于2016-08-04 · 知道合伙人数码行家
day忘不掉的痛
知道合伙人数码行家
采纳数:62646 获赞数:223941
本人担任公司网络部总经理多年,有充足的网络经验、互联网相关知识和资讯。

向TA提问 私信TA
展开全部
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()
)
hkeling
2014-03-05 · 超过27用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:42.1万
展开全部
1、获取上传的文件路径,这个还真没试过。百度了一下,网友们的意见是:浏览器版本太高,从安全角度,禁止获取全文件路径,你可以换低版本浏览器试试,不保证正确。 有结果希望告知一下

2、一般文件上传是获取文件流,然后本地new出来保存在服务器上。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a756142650
2014-03-05 · TA获得超过130个赞
知道答主
回答量:64
采纳率:100%
帮助的人:53万
展开全部

楼主:用基础的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" 表明上传的是文件么


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
频问贝5jpM
2014-03-05 · TA获得超过427个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:103万
展开全部
使用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(); // 获取文件路径
追问
按照你的方法获取不了,什么情况。你本机试过可以获取吗
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘记听雨
2014-03-05
知道答主
回答量:32
采纳率:0%
帮助的人:22.2万
展开全部
正如一楼所说,浏览器版本太高,从安全角度,禁止获取全文件路径,你可以换低版本浏览器试试,不保证正确,但是你可以获取到自己上传到的服务器的文件的全路径
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式