1.SpringMVC工作原理之MultipartResolver
MultipartResolver用于处理文件上传,当收到请求时,DispatcherServlet的checkMultipart()方法会调用MultipartResolver的isMultipart()方法判断请求中是否包含文件。如MultipartHttpServletRequest(继承了HttpServletRequest)对象中,最后传递给Controller,在MultipartResolver接口中有如下方法:
- boolean isMultipart(HttpServletRequest request);//是否是multipart
- MultipartHttpServletRequest resolveMultipart(HttpServletRequest request);//解析请求
- void cleanupMultipart(MultipartHttpServletRequest request);
MultipartFile封装了请求数据中的文件,此时这个文件存储在内存中,或临时的磁盘文件中,需要将其转存到一个合适的位置,因为请求结束后临时存储将被清空。在MultipartFile接口中有如下方法: - String getName(); // 获取参数的名称
- String getOriginalFilename(); // 获取文件的原名称
- String getContentType(); // 文件内容的类型
- boolean isEmpty(); // 文件是否为空
- long getSize(); // 文件大小
- byte[] getBytes(); // 将文件内容以字节数组的形式返回
- InputStream getInputStream(); // 将文件内容以输入流的形式返回
- void transferTo(File dest); // 将文件内容传输到指定文件中