700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java注解接收上传文件_SpringMVC 处理 multipart/data 请求实现文件上传

java注解接收上传文件_SpringMVC 处理 multipart/data 请求实现文件上传

时间:2024-03-30 11:35:19

相关推荐

java注解接收上传文件_SpringMVC 处理 multipart/data 请求实现文件上传

此前我们介绍过HTTP的multipart/form-data请求:

通过multipart/form-data请求可以方便的实现客户端到服务端的文件上传服务,但是默认的DispatcherServlet并不支持multipart/form-data请求,需要手动配置来启用multipart/form-data请求

javaconfiguration配置

AbstractAnnotationConfigDispatcherServletInitializer将DispatcherServlet注册到Servlet容器后,会生成一个ServletRegistration.Dynamic对象,并用这个对象调用customizeRegistration方法

通过复写customizeRegistration方法可以进行对DispatcherServlet进行额外的配置

package com.techlog.test.configuration;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.MultipartConfigElement;

import javax.servlet.ServletRegistration;

/**

* DispatcherServlet 初始化配置

* Created by techlog on /11/17.

*/

public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

/**

* @return Spring 应用上下文配置类

*/

@Override

protected Class>[] getRootConfigClasses() {

return new Class>[] { RootConfig.class };

}

/**

* @return Servlet Web 上下文配置类

*/

@Override

protected Class>[] getServletConfigClasses() {

return new Class>[] { WebConfig.class };

}

/**

* @return 匹配的 URL 模式

*/

@Override

protected String[] getServletMappings() {

return new String[] { "/" };

}

@Override

protected void customizeRegistration(ServletRegistration.Dynamic registration) {

registration.setMultipartConfig(new MultipartConfigElement("/tmp/techlog/uploads"));

}

}

这里我们调用setMultipartConfig方法启用了multipart请求的处理,并将/tmp/techlog/uploads目录设为了上传文件接收目录

通过MultipartConfigElement的不同构造器我们除上传路径这个必须参数外,还可以指定其他可选的限制条件:上传文件的最大容量(Byte)

整个multipart请求的最大容量(Byte)

上传文件大小(Byte)大于某个阈值则写入磁盘,否则保存在内存中,默认为0

web.xml配置

/p>

"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"/dtd/web-app_2_3.dtd" >

xmlns:xsi="/2001/XMLSchema-instance"

xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd"

version="3.0">

appServlet

/*

appServlet

org.springframework.web.servlet.DispatcherServlet

1

/tmp/techlog/uploads

2097152

4194304

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。