(1)单文件上传 - upload(MultipartFile uploadFile, HttpServletRequest req) 函数:
1. uploadFile:文件名
2. HttpServletRequest 请求request
3. 获取当前日期:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");
String format = sdf.format(new Date());
准确的讲,这里可获取网络时间。
4. 规划上传文件的保存路径:
String realPath = req.getSession().getServletContext()
.getRealPath("/uploadFile");
此为项目运行目录下的uploadFile文件夹。
5. 创建文件夹:如果不存在则创建。
//定义文件目录的名称
File foder = new File(realPath + format);
if(!foder.isDirectory()){
foder.mkdirs();
}
6. 新、旧文件名称:
//旧
String oldName = uploadFile.getOriginalFilename();
//新
String newName = UUID.randomUUID().toString() +
oldName.substring(oldName.lastIndexOf("."), oldName.length());
注: UUID.randomUUID().toString()的含义:
UUID(Universally Unique Identifier):通用唯一识别码,是一种软件建构的标准。
UUID 目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。
UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。
7.文件保存操作:
uploadFile.transferTo(new File(foder, newName));
8. 生成上传文件的访问路径:
String filePath = req.getScheme() + "://" +req.getServerName()
+ ":" +req.getServerPort() + "/uploadFile/" + format + newName;
注:
req.getScheme() :返回当前链接使用的协议;
request.getServerName() :返回当前页面所在的服务器的名字;
request.getServerPort() :返回当前页面所在的服务器使用的端口号;
(2)多文件上传 - 变形:upload(MultipartFile[ ] uploadFiles , HttpServletRequest req) 函数:
遍历 uploadFiles 数组分别存储.
此处等到用Vue element里面的上传组件时再更新...