struts2 文件上传路径错误 ERROR [STDERR] java.io.FileNotFoundException:

struts2上传文件到系统根目录,但是一直报路径错误下面是我写的代码importjava.io.File;importjava.io.FileInputStream;i... struts2上传文件到系统根目录,但是一直报路径错误
下面是我写的代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import org.apache.struts2.ServletActionContext;

import com.baosight.bocs.spring.service.ImportExcelService;
import com.opensymphony.xwork2.ActionSupport;
public class ImportExcelAction extends ActionSupport {
//上传文件集合
private List<File> file;
//上传文件名集合
private List<String> fileFileName;
//get和set方法就不写了
public get....
public set....
// 执行上传功能
private void uploadFile(int i) throws FileNotFoundException, IOException {
try {
InputStream in = new FileInputStream(file.get(i));
String dir = ServletActionContext.getRequest().getRealPath("/upload");
File uploadFile = new File(dir, this.getFileFileName().get(i));
OutputStream out = new FileOutputStream(uploadFile);
byte[] buffer = new byte[1024 * 1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}

in.close();
out.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
然后执行代码后报出的错误
14:21:51,281 ERROR [STDERR] java.io.FileNotFoundException: D:\JAVA\jboss-4.2.0.CR2\server\default\.\deploy\bocs.war\upload\2.14.xls (系统找不到指定的路径。)
14:21:51,281 ERROR [STDERR] at java.io.FileOutputStream.open(Native Method)
14:21:51,281 ERROR [STDERR] at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
14:21:51,281 ERROR [STDERR] at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
14:21:51,281 ERROR [STDERR] at com.baosight.bocs.struts.action.ImportExcelAction.uploadFile(ImportExcelAction.java:79)
14:21:51,281 ERROR [STDERR] at com.baosight.bocs.struts.action.ImportExcelAction.execute(ImportExcelAction.java:68)
14:21:51,281 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
14:21:51,281 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
14:21:51,281 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
14:21:51,281 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:589)
我知道是路径不对 但是为什么getRealPath方法得不到正确的绝对路径啊,我用的是ISS框架(Ibatis;Spring;Struts2)
正确的路径是:
D:\JAVA\jboss-4.2.0.CR2\server\default\deploy\bocs.war\upload\2.14.xls
getRealPath方法给我的路径却是:
D:\JAVA\jboss-4.2.0.CR2\server\default\.\deploy\bocs.war\upload\2.14.xls
其中多出了一个“\.\”的目录 没想通这个目录是怎么多出来的
展开
 我来答
程序员的窘境
2012-06-19 · 超过13用户采纳过TA的回答
知道答主
回答量:120
采纳率:0%
帮助的人:52.5万
展开全部
这个可能就是你的Struts2的配置路径的原因了,你在struts.xml中配置这个Struts的路径的时候,可能多加了一个“.”,因此在路径中才会有“.”出现的原因吧,所以你检查一下你的配置文件看看
焉念雁0im7c4
2012-06-19 · 超过26用户采纳过TA的回答
知道答主
回答量:167
采纳率:0%
帮助的人:59.4万
展开全部
把路径取出来 用字符串方法处理一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0802343306
2012-06-19 · 超过14用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:23.8万
展开全部
\.\明显多了,检查代码去了就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
打北方来的狼
2012-06-19
知道答主
回答量:28
采纳率:0%
帮助的人:8万
展开全部
斜杠和反斜杠?路径好好看看~~~自己都找到错了,就顺着错误去找路径,然后修改~!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笨蛋——丫头e7a
2012-06-25 · 贡献了超过112个回答
知道答主
回答量:112
采纳率:0%
帮助的人:14.2万
展开全部
uploadFile(int i) 在哪传入的值啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式