使用jspSmartUpload时,文件保存路径报错IllegalArgumentException

代码如下:路径①Stringpath=“/upload”;②Stringpath=“D:/”;方法intcount=mySmartUpload.save(path);使用... 代码如下:
路径
①String path = “/upload”;
②String path = “D:/”;
方法
int count = mySmartUpload.save(path);
使用①时,会报错【This path does not exist(1135)】
使用②时,则能正常保存;
但我只能提供类似①的相对路径,如何破?
展开
 我来答
弓蕴6h
2013-11-25 · TA获得超过142个赞
知道答主
回答量:89
采纳率:100%
帮助的人:74.7万
展开全部
以我的工作经验,我写个例子给你,希望你好好理解,如下:
//获取classes的根目录的绝对路径
URL urlPath = Test.class.getResource("/");
System.out.println(urlPath.getFile());
try {
//urlPath.getFile()会返回classes根目录的绝对路径,然后再加上你的upload相对路径,结果就是F:\Workspace\workdata\java\Eclipse\pn\WebContent\WEB-INF\classes\upload,(这是我的项目目录)
String absPath = new File(urlPath.getFile(), "upload").getCanonicalPath();
System.out.println(absPath);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

如果还不符合你的要求,以下还有两种方法:
1、使用相对路径
把String absPath = new File(urlPath.getFile(), "upload").getCanonicalPath();换成String absPath = new File(urlPath.getFile()+"../../../", "upload").getCanonicalPath();
2、直接找到项目的跟目录
String absPath = new File("upload").getCanonicalPath();返回的是F:\Workspace\workdata\java\Eclipse\pn\upload

以上方法是我从工作经验中总结出来的,对linux和windows系统都通用,绝对是万能的方法。
追问
URL urlPath = Test.class.getResource("/");中的【Test】是哪里来的?
追答
Test.class是我的类,你随便找个类就行了
飞跃尺度
2013-11-25 · TA获得超过751个赞
知道小有建树答主
回答量:881
采纳率:50%
帮助的人:203万
展开全部
file.saveAs("/upload/"+ file.getFileName(),mySmartUpload.SAVE_VIRTUAL);
默认是上传到tomcat下的,你要在自己的java web项目程序下建立upload文件夹
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式