java 文件保存路径问题.

publicstaticStringfileUploadReturnPath(Fileuploads,StringuploadsFileName,Stringmodel)... public static String fileUploadReturnPath(File uploads,
String uploadsFileName, String model) {
//1.文件上传保存路径
String basePath = ServletActionContext.getServletContext().getRealPath("/upload");
//2.按日期创建文件夹
String datePath = DateUtils.dateToStringByFile(new Date());
datePath+="/";
//3.上传文件后缀
String perfix = uploadsFileName.substring(uploadsFileName.lastIndexOf("."));
//4.文件名使用UUID保证唯一性
String fileName = UUID.randomUUID().toString()+perfix;
//5.如果日期文件夹不存在,创建文件夹
File dateFile = new File(basePath + datePath + model);
if (!dateFile.exists()) {
dateFile.mkdirs();
}
//6.文件上传
File destFile = new File(basePath + datePath + model + "/" + fileName);
//uploads:源文件 renameTo:剪切至 destFile:目标文件
uploads.renameTo(destFile);
return "/upload" + datePath + model + "/" + fileName;
}
/** File dateFile1 = new File(basePath + datePath + model);
dateFile1创建的文件夹路径:D:\apache-tomcat-7.0.70\webapps\elec\upload\2016\07\26用户管理
我想要[26\用户管理]这样结果.于是修改代码为如下:
File dateFile2 = new File(basePath + datePath + "/" + model);
dateFile2的结果://D:\apache-tomcat-7.0.70\webapps\elec\upload\2016\07\26\用户管理
但是创建的文件夹路径是对的了. 但文件上传功能却不好使了~ 我不知道哪里出了问题.
试了各种办法,都没用. 只有File dateFile1 = new File(basePath + datePath + model); 这样才好使.
但文件路径就成了2016\07\26用户管理
于是我用苯办法,在datePath后面加了一行datePath+="/";
此时 文件夹的创建路径为//D:\apache-tomcat-7.0.70\webapps\elec\upload\2016\07\26\用户管理
文件也可以正常上传了.
求 问题出在哪里
*/
展开
 我来答
百度网友062f9c8
推荐于2018-04-26 · TA获得超过1254个赞
知道小有建树答主
回答量:840
采纳率:60%
帮助的人:727万
展开全部
改为:File dateFile2 = new File(basePath + datePath + "/" + model);的时候不好使应该是你的返回值没有加 文件分隔符的原因。
你最后成功是因为你加了 datePath+="/";
让返回和新建文件路径都一致了。
另外不要用“/” 最好使用:File.separator;
还有renameTo只能在windows下使用,limux不行,而且即使是在windonws下,如果file systems不一样也会失败的,建议copy文件自己重写或者使用common-io的工具类。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式