单、多文件上传-后端

(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.文件保存操作:

扫描二维码关注公众号,回复: 10604667 查看本文章
 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里面的上传组件时再更新...

发布了71 篇原创文章 · 获赞 22 · 访问量 6017

猜你喜欢

转载自blog.csdn.net/Kevin__Coder/article/details/104491658