java注解接收上传文件_SpringMVC 处理 multipart/data 请求实现文件上传
此前我们介绍过 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 请求实现文件上传相关推荐
- java注解接收上传文件,前台:Input type=file 后台获取文件内容用的是spring注解,当地环境上传图片是好的,发布到服务器上图片读取不到,求大神指点...
当前位置:我的异常网» Java Web开发 » 前台:Input type="file" 后台获取文件内 前台:Input type="file" 后台获取文 ...
- linux递归创建文件夹_Python中并发请求创建文件夹带来的线程安全问题
在我们日常写程序的过程中,免不了与文件系统打交道,各种开发语言都提供了与文件系统交互的指令函数,比如Python中的os模块,就提供了许多这样的指令函数,今天就以创建文件夹为例,来说一下,如果用的不当 ...
- android 上传字符串,Android中发送Http请求(包括文件上传、servlet接收)的实例代码...
/** * 通过拼接的方式构造请求内容,实现参数传输以及文件传输 * @param actionUrl * @param params * @param files * @return * @thro ...
- Java注解中produces啥意思_springmvc 没有produces注释,@produces在spring mvc中是什么意思...
@RequestMapping(value = "/produces", produces = "application/json"):表示将功能处理方法将生产 ...
- nginx环境下执行php文件就报502,nginx请求php文件提示502错误 | 吴老二
nginx的文件提示502就是服务没有启动,这里不管是php还是java.出现502的问题都是服务没有启动,下面浮现一下,首先在nginx的配置文件里写了一个php版本的文件. [root@wulao ...
- java file 相对路径 根目录修改_java中使用相对路径读取文件的写法总结 ,以及getResourceAsStream() (转)...
https://blog.csdn.net/my__sun_/article/details/74450241 读取文件的写法,相对路径 在当前的目录结构中读取test.txt的有四种写法 简单粗暴的 ...
- Spring中利用java注解声明切面
Spring中利用java注解声明切面 第一步:确定在Spring的XML文件中包含AOP的命名空间: 第二步:在Spring的XML文件中输入<aop:aspectj-autoproxy/&g ...
- js文件上传,java后台接收
js文件上传,java后台接收 js文件上传,java后台如何接收 前端写法如下 <!DOCTYPE html> <html><head><meta char ...
- web上传zip大文件,java服务接收并解压ZIP文件
目录 一.背景 二.知识点 三.代码实现 1.依赖 2.web 代码 3. java服务端 一.背景 公司产品小伙伴画了原型后,需要上传到服务器上供开发查看:由于文件数量很多,100M左右差不多要传3 ...
最新文章
- python round函数_python中round函数如何使用
- c语言二级指针有什么作用,C语言中二级指针的实例详解
- Visual Basic、C# 和 C++ 的数据类型比较(转)
- 框架如何调用存储过程_如何在FastReport.Net中使用存储过程
- mac怎么设置默认浏览器 mac默认浏览器设置方法
- java线程等待_java 中线程等待与通知的实现
- fpga供电电压偏低会怎样_正点原子【FPGA-开拓者】第三章 硬件资源详解
- word2vec 细节解析1
- 暗影之枪显示连接服务器失败,暗影之枪传奇进不去怎么办?游戏更新进不去问题详解[多图]...
- Cgroup 资源配置方法
- 如何电脑上怎样查看微信聊天记录
- 交换机,集线器,路由器这三者怎样区分,各自的作用是什么?
- EINT DINT ERTM DRTM EALLOW EDIS ESTOP0的理解
- PT100热敏电阻原理解析
- G-sensor的两种使用方式
- selected 操作
- 仿淘宝客户端电商平台android初级速成-张勇-专题视频课程
- 爬虫实战-肯德基kfc门店地址实战
- PE市盈率们之间的区别
- 股票类网站php,php 股票信息查询类