最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Java实现文件上传到本地方式 (自定义保存路径)
时间:2026-06-16 08:31:35 编辑:袖梨 来源:一聚教程网
首先基于 springboot 实现的,其他场景下可以引入相应的 jar 包后进行整合。

首先写入一个方法
方法的参数为传入的文件,方法的返回值自定义,这里返回类型为 String ,返回文件的存储地址。
public String uploadToLocal(MultipartFile file){
}
接着在方法中进行文件的具体存取操作。
先获取上传文件的原始名称
String originName = file.getOriginalFilename();
接着可以指定只能上传 pdf,doc,docx 类型的文件,这里需要先找出文件的后缀来判断上传文件的类型是否合法:
先将指定的后缀存在 set 集合中
set 集合的底层是哈希表,时间复杂度为 O(1)
Set<String> set = new HashSet<>();
set.add(".pdf");
set.add(".doc");
set.add(".docx");
set.add(".jpg");
接着找出文件的后缀,首先遍历获取的原始文件名,通过下标遍历这个原始名称,找到第一个"."后结束遍历,然后调用 String.subString(int index) 得到字符串从 index (包括)一直到后面所有的字符串,得到的字符串就是文件的后缀。
int count = 0;
for(int i = 0; i < originName.length(); i++){
if(originName.charAt(i) == '.'){
count = i;
break;
}
}
String endName = originName.substring(count);
同时也可以获取到文件类型
比如 ".pdf" 将"."去掉得到类型 pdf
String fileType = originName.substring(count + 1);
再判断文件是否是合法类型
不合法则直接返回错误信息:
if(!set.contains(endName)){
return new String("上传的文件类型错误,只能上传pdf,doc,docx,jpg类型的文件");
}
如果文件类型合法,进行接下来的操作。
首先确定文件的保存路径,可以自定义。
这里直接保存在项目父目录下,加入项目叫 test,路径为
test/files/文件类型/保存文件时候的时间(yyyyMMdd)年月日/文件原始名称
这就需要获取当天的日期并格式化为yyyyMMdd格式,并获取文件类型。
路径采用拼接的方式
先获取当前项目的路径然后一步步拼接:
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String format = sdf.format(new Date());
String savePath = System.getProperty("user.dir") + "" + "files" + "" + fileType + "" + format;
最后进行文件的保存
文件保存过程中可能会出现异常,因此用try...catch:
try {
file.transferTo(new File(folder,saveName));
String filePath = savePath + "" + saveName;
return new String("文件路径为:" + filePath);
} catch (IOException e){
return new String(e.getMessage());
}
最后返回的String为文件的存储地址,即保存路径 + 文件名。
接下来是方法的完整代码
public String uploadToLocal(MultipartFile file){
// 获取文件原本的名字
String originName = file.getOriginalFilename();
// 判断文件是否是pdf文件
Set<String> set = new HashSet<>();
set.add(".pdf");
set.add(".doc");
set.add(".docx");
// 取出文件的后缀
int count = 0;
for(int i = 0; i < originName.length(); i++){
if(originName.charAt(i) == '.'){
count = i;
break;
}
}
String endName = originName.substring(count); //取出文件类型
String fileType = originName.substring(count + 1); //文件类型
if(!set.contains(endName)){
return new String("上传的文件类型错误,只能上传pdf,doc,docx类型的文件");
}
// 创建保存路径
//日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String format = sdf.format(new Date());
String savePath = System.getProperty("user.dir") + "" + "files" + "" + fileType + "" + format;
// 保存文件的文件夹
File folder = new File(savePath);
// 判断路径是否存在,不存在则自动创建
if(!folder.exists()){
folder.mkdirs();
}
String saveName = originName;
try {
file.transferTo(new File(folder,saveName));
String filePath = savePath + "" + saveName;
return new String("文件路径为:" + filePath);
} catch (IOException e){
return new String(e.getMessage());
}
}
方法可用作工具类,也可以直接用作后端接口。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
您可能感兴趣的文章:- JAVA后端MultipartFile实现文件上传实例
- Java实现文件上传和url格式校验工具
- Java实现大文件上传与断点续传的全过程
- Java大文件上传(分片上传+断点续传)的解决方案详解
- java大文件上传处理方法实例代码
- Java实现FTP文件上传下载功能的详细指南
- Java实现限制文件上传类型功能
相关文章
- 悠星大陆深渊乱斗怎么玩 深渊乱斗玩法介绍 07-31
- 《遥遥西土》峡谷唱片全收集攻略分享 07-31
- 王者荣耀英雄技能攻略(掌握技能,成就传奇王者) 07-31
- DDR4-3600 vs DDR5-5600游戏实测:低延迟与高带宽谁更适合游戏 07-31
- PS6光追性能暴涨10倍 AI与高刷新率或成主打 07-31
- 灌篮军团满级的零怎么培养 满级的零培养一览 07-31