通过input type=file上传一个Excel,在打开的时候java.io.FileNotFoundException:

protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServl... protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Into into = new Into();
Excel excel = new Excel();
String path = new String(request.getParameter("excel").getBytes("ISO8859-1"),"UTF-8");
System.out.println(path);
File file=new File(path);
List<Mynews> ls = excel.addCustomerAssign(file);
Iterator<Mynews> iter = ls.iterator();
while (iter.hasNext()) {
Mynews ms = (Mynews) iter.next();
if(into.insertexcel(ms)){
System.out.println("成功");

}else {
System.out.println("失败");
}

}
}
展开
 我来答
1163976803
推荐于2018-05-13 · TA获得超过120个赞
知道小有建树答主
回答量:90
采纳率:0%
帮助的人:83.3万
展开全部
你代码里 这一句 request.getParameter("excel")
获得的只是文件的名字,并不是路径,
只有名字肯定找不到文件啊!
你要把路径也获取到,类似于这样的 : d:\test.xlsx
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
典勇嘉谋
2014-09-26 · TA获得超过362个赞
知道小有建树答主
回答量:308
采纳率:100%
帮助的人:139万
展开全部
我去,又是一个用路径上传的。用request.getInputStream()直接获取流,你用path是获取不到的。path是本地路径,而程序在服务器上,获取的是服务器的路径。
http://zhidao.baidu.com/question/1988364813017018467 问题跟你差不多
追问
如果我单纯想让程序能用,就只需file(填路径是吧),但是为什么我只写文件名,把文件放在根目录不好使呢
追答

证明你的路径是错误的。

        String rootUrl = request.getServletContext().getRealPath("/");
        String filePath = rootUrl + "common/xx.xls";

先获取项目的根路径,然后拼接path。代码中是项目路径下面有个common文件夹,然后下面是xx.xls文件。注意一点,我的common是跟WEB-INF是同一个级别的路径。一般WEB-INF上面一层就是根路径。

你从request.getParameter("excel")去获取一个路径,给人的感觉就是从页面传递过来的一个参数。既然你这么说了,就干脆按我上面的代码直接写死好了。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拥抱枯木
2014-09-26 · TA获得超过285个赞
知道小有建树答主
回答量:390
采纳率:0%
帮助的人:244万
展开全部
文件路径不对,按你这个代码,test.xlsx要放在工程根目录才能读到。
追问
根目录也不好使啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a243f9d
2014-09-26 · 超过24用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:53.2万
展开全部
页面form中添加 enctype="multipart/form-data"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式