StandardServletMultipartResolver 没有构造器参数,如果要限制上传文件的大小等一些属性,那么需要在web.xml中配置DispatcherServlet的 multipart-config属性
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> <multipart-config> <location>J:\\uploads</location> <max-file-size>2000000</max-file-size> </multipart-config> </servlet>使用spring配置StandardServletMultipartResolver bean
<bean class="org.springframework.web.multipart.support.StandardServletMultipartResolver"></beanCommonsMultipartResolver 必须要配置临时目录,通过属性来注入
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> <property name="maxInMemorySize" value="5400000"></property> <property name="uploadTempDir" value="upload"></property> </bean>三种方式: 1. 使用byte[] 参数 2. 使用MulipartFile 接口(spring提供) 3. 使用Part 接口(servlet 提供)
必须要搭配StandardServletMultipartResolver 解析器
@RequestMapping("/uploads") public String uploads(@RequestPart byte[] myfile ) throws IOException{ System.out.println("上传文件"); System.out.println(myfile.length); OutputStream outputStream = new FileOutputStream("J:\\pic111.png"); outputStream.write(myfile); outputStream.close(); return "success"; }必须要搭配CommonsMultipartResolver 解析器
public interface MultipartFile extends InputStreamSource { String getName(); String getOriginalFilename(); String getContentType(); boolean isEmpty(); long getSize(); byte[] getBytes() throws IOException; InputStream getInputStream() throws IOException; void transferTo(File var1) throws IOException, IllegalStateException; }必须要加@RequestParam注解,否则会报错
@RequestMapping("/upload") public String uploads(@RequestParam MultipartFile myfile) throws IOException { System.out.println(myfile.getName()); System.out.println(myfile.getOriginalFilename()); myfile.transferTo(new File("J:\\ppp.jpg")); return "success"; }必须要搭配StandardServletMultipartResolver 解析器
@RequestMapping("/upload") public String uploads(@RequestPart Part myfile) throws IOException { System.out.println(myfile.getName()); System.out.println(myfile.getOriginalFilename()); myfile.transferTo(new File("J:\\ppp.jpg")); return "success"; }