简介
用户管理模块完成后,接下来我们要完成的是另外一个企业应用开发中常见的功能:图片管理模块。
上传图片是比较常见和被用户熟知的功能模块,常用场景有头像设置、产品预览图、新闻头图等等,在这些场景中都需要使用到图片上传功能,本篇文章将会对文件上传的大致流程及功能设计进行详细的介绍,并通过 SpringMVC 实现图片管理模块的相关功能。
SpringMVC 实现文件上传
在模块功能实现前,十三先通过源码分析,具体介绍下 SpringMVC 是如何进行文件上传处理的。其中包括代码调用时序图的绘制,以及对 SpringMVC 框架中文件处理部分代码的解析。
时序图
利用 SpringMVC 实现文件上传功能,离不开对 MultipartResolver 的设置。MultipartResolver 这个类,你可以将其视为 SpringMVC 实现文件上传功能时的工具类,这个类也只会在文件上传中发挥作用。在配置了具体实现类之后,SpringMVC中的 DispatcherServlet 在处理请求时会调用 MultipartResolver 中的方法判断此请求是不是文件上传请求。如果是,DispatcherServlet 将调用 MultipartResolver 的 resolveMultipart(request)
方法对该请求对象进行装饰并返回一个新的 MultipartHttpServletRequest 供后继