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

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

java configuration 配置

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 2016/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"

"http://java.sun.com/dtd/web-app_2_3.dtd" >

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

version="3.0">

appServlet

/*

appServlet

org.springframework.web.servlet.DispatcherServlet

1

/tmp/techlog/uploads

2097152

4194304

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

  1. java注解接收上传文件,前台:Input type=file 后台获取文件内容用的是spring注解,当地环境上传图片是好的,发布到服务器上图片读取不到,求大神指点...

    当前位置:我的异常网» Java Web开发 » 前台:Input type="file" 后台获取文件内 前台:Input type="file" 后台获取文 ...

  2. linux递归创建文件夹_Python中并发请求创建文件夹带来的线程安全问题

    在我们日常写程序的过程中,免不了与文件系统打交道,各种开发语言都提供了与文件系统交互的指令函数,比如Python中的os模块,就提供了许多这样的指令函数,今天就以创建文件夹为例,来说一下,如果用的不当 ...

  3. android 上传字符串,Android中发送Http请求(包括文件上传、servlet接收)的实例代码...

    /** * 通过拼接的方式构造请求内容,实现参数传输以及文件传输 * @param actionUrl * @param params * @param files * @return * @thro ...

  4. Java注解中produces啥意思_springmvc 没有produces注释,@produces在spring mvc中是什么意思...

    @RequestMapping(value = "/produces", produces = "application/json"):表示将功能处理方法将生产 ...

  5. nginx环境下执行php文件就报502,nginx请求php文件提示502错误 | 吴老二

    nginx的文件提示502就是服务没有启动,这里不管是php还是java.出现502的问题都是服务没有启动,下面浮现一下,首先在nginx的配置文件里写了一个php版本的文件. [root@wulao ...

  6. java file 相对路径 根目录修改_java中使用相对路径读取文件的写法总结 ,以及getResourceAsStream() (转)...

    https://blog.csdn.net/my__sun_/article/details/74450241 读取文件的写法,相对路径 在当前的目录结构中读取test.txt的有四种写法 简单粗暴的 ...

  7. Spring中利用java注解声明切面

    Spring中利用java注解声明切面 第一步:确定在Spring的XML文件中包含AOP的命名空间: 第二步:在Spring的XML文件中输入<aop:aspectj-autoproxy/&g ...

  8. js文件上传,java后台接收

    js文件上传,java后台接收 js文件上传,java后台如何接收 前端写法如下 <!DOCTYPE html> <html><head><meta char ...

  9. web上传zip大文件,java服务接收并解压ZIP文件

    目录 一.背景 二.知识点 三.代码实现 1.依赖 2.web 代码 3. java服务端 一.背景 公司产品小伙伴画了原型后,需要上传到服务器上供开发查看:由于文件数量很多,100M左右差不多要传3 ...

最新文章

  1. python round函数_python中round函数如何使用
  2. c语言二级指针有什么作用,C语言中二级指针的实例详解
  3. Visual Basic、C# 和 C++ 的数据类型比较(转)
  4. 框架如何调用存储过程_如何在FastReport.Net中使用存储过程
  5. mac怎么设置默认浏览器 mac默认浏览器设置方法
  6. java线程等待_java 中线程等待与通知的实现
  7. fpga供电电压偏低会怎样_正点原子【FPGA-开拓者】第三章 硬件资源详解
  8. word2vec 细节解析1
  9. 暗影之枪显示连接服务器失败,暗影之枪传奇进不去怎么办?游戏更新进不去问题详解[多图]...
  10. Cgroup 资源配置方法
  11. 如何电脑上怎样查看微信聊天记录
  12. 交换机,集线器,路由器这三者怎样区分,各自的作用是什么?
  13. EINT DINT ERTM DRTM EALLOW EDIS ESTOP0的理解
  14. PT100热敏电阻原理解析
  15. G-sensor的两种使用方式
  16. selected 操作
  17. 仿淘宝客户端电商平台android初级速成-张勇-专题视频课程
  18. 爬虫实战-肯德基kfc门店地址实战
  19. PE市盈率们之间的区别
  20. 股票类网站php,php 股票信息查询类

热门文章

  1. 【Oracle】append
  2. 【SQL】去除表中的重复行
  3. 【EDAS问题】轻量级EDAS部署hsf服务出现找不到类的解决方案
  4. layui 解决浏览器自动填充form表单账号和密码输入框的问题
  5. 如何使用CORS解决跨域问题
  6. java向mysql插入数据乱码问题解决
  7. VS2012 无法启动IIS Express Web服务器的解决方案
  8. 使用layui 做后台管理界面,在Tab中的链接点击后添加一个新TAB的解决方法
  9. 使用Xcode 6中的AutoLayout约束模拟方面适合行为
  10. 降价上标(Github风味)?