- 浏览: 3552602 次
- 性别:
- 来自: 大连
博客专栏
-
使用Titanium Mo...
浏览量:38217
-
Cordova 3.x入门...
浏览量:607596
-
常用Java开源Libra...
浏览量:682776
-
搭建 CentOS 6 服...
浏览量:89532
-
Spring Boot 入...
浏览量:402144
-
基于Spring Secu...
浏览量:69760
-
MQTT入门
浏览量:91835
文章分类
最新评论
-
afateg:
阿里云的图是怎么画出来的?用什么工具?
各云服务平台的架构图 -
cbn_1992:
博主,采用jdbctoken也就是数据库形式之后,反复点击获取 ...
Spring Security OAuth2 Provider 之 数据库存储 -
ipodao:
写的很是清楚了,我找到一份中文协议:https://mcxia ...
MQTT入门(6)- 主题Topics -
Cavani_cc:
还行
MQTT入门(6)- 主题Topics -
fexiong:
博主,能否提供完整源码用于学习?邮箱:2199611997@q ...
TensorFlow 之 构建人物识别系统
(1)单文件上传
Form方式
Ajax方式
(2)多文件上传
(3)上传文件大小限制
src/main/resources/application.properties
Nginx的nginx,conf
client_max_body_size 默认是1m,设置为0时,Nginx会跳过验证POST请求数据的大小。
Tomcat的server.xml
Tomcat 7.0.55之后的版本添加了 maxSwallowSize 参数,默认是2m。maxPostSize对「multipart/form-data」请求不再有效。
(4)文件下载(CSV/Excel/PDF)
CSV文件
PDF文件(采用iText生成PDF)
iText具体如何使用参考这里:Java操作PDF之iText超入门
org.springframework.web.servlet.view.document.AbstractPdfView
Excel文件(采用Apache POI生成EXCEL)
POI具体如何使用参考这里:Java读写Excel之POI超入门
org.springframework.web.servlet.view.document.AbstractExcelView
任意文件
本地文件
(5)异常处理
Form方式
<form id="data_upload_form" action="file/upload" enctype="multipart/form-data" method="post"> <input type="file" id="upload_file" name="upload_file" required="" /> <input id="data_upload_button" type="submit" value="上传" /> </form>
Ajax方式
$(function(){ $("#data_upload_button").click(function(event){ event.preventDefault(); if(window.FormData){ var formData = new FormData($(this)[0]); $.ajax({ type : "POST", url : "file/upload", dataType : "text", data : formData, processData : false, contentType: false, }).done(function(data) { alert("OK"); }).fail(function(XMLHttpRequest, textStatus, errorThrown) { alert("NG"); }); }else{ alert("No Support"); } } }); });
@PostMapping("/file/upload") public void upload(@RequestParam("upload_file") MultipartFile multipartFile) { if(multipartFile.isEmpty()){ return; } File file = new File("d://" + multipartFile.getOriginalFilename()); multipartFile.transferTo(file); }
(2)多文件上传
<form id="data_upload_form" action="file/uploads" enctype="multipart/form-data" method="post"> <input type="file" id="upload_files" name="upload_files" required="" /> <input type="file" id="upload_files" name="upload_files" required="" /> <input type="file" id="upload_files" name="upload_files" required="" /> <input id="data_upload_button" type="submit" value="上传" /> </form>
@PostMapping("/file/uploads") public void upload(@RequestParam("upload_files") MultipartFile[] uploadingFiles) { for(MultipartFile uploadedFile : uploadingFiles) { File file = new File("d://" + uploadedFile.getOriginalFilename()); uploadedFile.transferTo(file); } }
(3)上传文件大小限制
src/main/resources/application.properties
引用
spring.http.multipart.location=${java.io.tmpdir}
spring.http.multipart.max-file-size=1MB # 单文件大小
spring.http.multipart.max-request-size=10MB # 一次请求的多个文件大小
spring.http.multipart.max-file-size=1MB # 单文件大小
spring.http.multipart.max-request-size=10MB # 一次请求的多个文件大小
Nginx的nginx,conf
client_max_body_size 默认是1m,设置为0时,Nginx会跳过验证POST请求数据的大小。
引用
http {
# ...
server {
# ...
location / {
client_max_body_size 10m;
}
# ...
}
# ...
}
# ...
server {
# ...
location / {
client_max_body_size 10m;
}
# ...
}
# ...
}
Tomcat的server.xml
引用
maxPostSize URL参数的最大长度,-1(小于0)为禁用这个属性,默认为2m
maxParameterCount 参数的最大长度,超出长度的参数将被忽略,0表示没有限制,默认值为10000
maxSwallowSize 最大请求体字节数,-1(小于0)为禁用这个属性,默认为2m
maxParameterCount 参数的最大长度,超出长度的参数将被忽略,0表示没有限制,默认值为10000
maxSwallowSize 最大请求体字节数,-1(小于0)为禁用这个属性,默认为2m
Tomcat 7.0.55之后的版本添加了 maxSwallowSize 参数,默认是2m。maxPostSize对「multipart/form-data」请求不再有效。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" useBodyEncodingForURI="true" maxSwallowSize="-1" />
@Bean public TomcatEmbeddedServletContainerFactory containerFactory() { return new TomcatEmbeddedServletContainerFactory() { @Override protected void customizeConnector(Connector connector) { super.customizeConnector(connector); if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) { ((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1); } } }; }
(4)文件下载(CSV/Excel/PDF)
CSV文件
@RequestMapping(value = "/downloadCSV", method = RequestMethod.GET) public ResponseEntity<byte[]> downloadCSV() throws IOException { HttpHeaders h = new HttpHeaders(); h.add("Content-Type", "text/csv; charset=GBK"); h.setContentDispositionFormData("filename", "foobar.csv"); return new ResponseEntity<>("a,b,c,d,e".getBytes("GBK"), h, HttpStatus.OK); }
PDF文件(采用iText生成PDF)
iText具体如何使用参考这里:Java操作PDF之iText超入门
org.springframework.web.servlet.view.document.AbstractPdfView
@Component public class SamplePdfView extends AbstractPdfView { @Override protected void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter writer, HttpServletRequest request, HttpServletResponse response) throws Exception { document.add(new Paragraph((Date) model.get("serverTime")).toString()); } } @RequestMapping(value = "exportPdf", method = RequestMethod.GET) public String exportPdf(Model model) { model.addAttribute("serverTime", new Date()); return "samplePdfView"; }
Excel文件(采用Apache POI生成EXCEL)
POI具体如何使用参考这里:Java读写Excel之POI超入门
org.springframework.web.servlet.view.document.AbstractExcelView
@Component public class SampleExcelView extends AbstractExcelView { @Override protected void buildExcelDocument(Map<String, Object> model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { HSSFSheet sheet; HSSFCell cell; sheet = workbook.createSheet("Spring"); sheet.setDefaultColumnWidth(12); cell = getCell(sheet, 0, 0); setText(cell, "Spring Excel test"); cell = getCell(sheet, 2, 0); setText(cell, (Date) model.get("serverTime")).toString()); } } @RequestMapping(value = "exportExcel", method = RequestMethod.GET) public String exportExcel(Model model) { model.addAttribute("serverTime", new Date()); return "sampleExcelView"; }
任意文件
@Component public class TextFileDownloadView extends AbstractFileDownloadView { @Override protected InputStream getInputStream(Map<String, Object> model, HttpServletRequest request) throws IOException { Resource resource = new ClassPathResource("abc.txt"); return resource.getInputStream(); } @Override protected void addResponseHeader(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) { response.setHeader("Content-Disposition", "attachment; filename=abc.txt"); response.setContentType("text/plain"); } } @RequestMapping(value = "/downloadTxt", method = RequestMethod.GET) public String downloadTxt1() { return "textFileDownloadView"; }
本地文件
@RequestMapping(value = "/downloadTxt2", produces = MediaType.TEXT_PLAIN_VALUE) public Resource downloadTxt2() { return new FileSystemResource("abc.txt"); }
(5)异常处理
@ExceptionHandler(MaxUploadSizeExceededException.class) public ModelAndView handleMaxUploadSizeExceededException(HttpServletRequest req, Exception ex) { ModelAndView model = new ModelAndView("error/fileSizeExceeded"); Throwable t = ((MaxUploadSizeExceededException)ex).getCause(); if (t instanceof FileUploadBase.FileSizeLimitExceededException) { FileUploadBase.FileSizeLimitExceededException s = (FileUploadBase.FileSizeLimitExceededException)t; // ... } if (t instanceof FileUploadBase.SizeLimitExceededException) { FileUploadBase.SizeLimitExceededException s = (FileUploadBase.SizeLimitExceededException)t; // ... } return model; }
发表评论
-
Spring Boot 入门 - 进阶篇(8)- 应用监控(Actuator)
2017-03-16 14:57 17591作为Spring Boot的另外一大亮点,就是actuator ... -
Spring Boot 入门 - 进阶篇(7)- 自动配置(AutoConfigure)
2017-03-16 11:05 62281自动配置是Spring Boot的最大亮点,完美的展示了CoC ... -
Spring Boot 入门 - 进阶篇(6)- 启动加载(CommandLineRunner)
2017-03-15 15:04 15110启动成功后可以通过以下方法运行自己的初始代码: @PostCo ... -
Spring Boot 入门 - 进阶篇(5)- 数据缓存(@Cacheable)
2017-03-14 16:28 34687缓存可以缓解数据库访 ... -
Spring Boot 入门 - 进阶篇(4)- REST访问(RestTemplate)
2017-03-14 11:07 45308经常需要发送一个GET/POST请求到其他系统(REST AP ... -
Spring Boot 入门 - 进阶篇(3)- 定时任务(@Scheduled)
2017-03-13 13:23 23780主要用于定时发送邮件、夜间自动维护等。 (1)开启定时任务功 ... -
Spring Boot 入门 - 进阶篇(2)- 异步调用(@Async)
2017-03-07 15:59 20095异步处理 Java的异步处理Thread/Runnable、 ... -
Spring Boot 入门 - 进阶篇(1)- Servlet、Filter、Listener、Interceptor
2017-03-07 10:39 10631用户认证授权、日志记录MDC、编码解码、UA检查、多端对应等都 ... -
Spring Boot 入门 - 基础篇(15)- 工程部署
2017-02-16 15:31 9057(1)开发阶段 一般开发过程: 1)-写代码 2)- [Ru ... -
Spring Boot 入门 - 基础篇(14)- 参数设置
2017-02-16 15:25 5743(1)读取优先顺序 a - 命令行参数 --key=val ... -
Spring Boot 入门 - 基础篇(13)- 异常处理
2017-02-16 10:23 8677先要了解Spring的异常处理:http://rensanni ... -
Spring Boot 入门 - 基础篇(12)- 数据校验
2017-02-16 09:53 19939除过在客户端做JavaScript数据校验外,服务器端做数据校 ... -
Spring Boot 入门 - 基础篇(11)- 数据源配置
2017-02-15 11:12 16406(1)单一数据源 默认Spring Boot会在classp ... -
Spring Boot 入门 - 基础篇(10)- 发送邮件
2017-02-14 10:04 2488(1)配置 pom.xml <dependency> ... -
Spring Boot 入门 - 基础篇(8)- 数据库操作
2017-02-10 16:17 8680(1)导入mybatis-spring-boot-starte ... -
Spring Boot 入门 - 基础篇(7)- 国际化
2017-02-10 13:58 13150Spring Boot默认支持国际化配置,只需要添加配置文件即 ... -
Spring Boot 入门 - 基础篇(6)- 页面模板
2017-02-09 15:00 6482Spring Boot支持很多模板引擎,但嵌入式容器JSP有限 ... -
Spring Boot 入门 - 基础篇(5)- 使用WebJars
2017-02-09 14:20 11752WebJars能使Maven的依赖管理支持OSS的JavaSc ... -
Spring Boot 入门 - 基础篇(4)- 静态资源
2017-02-09 13:10 10709静态资源包括:HTML、CSS、JS、图像、视频、PDF/Of ... -
Spring Boot 入门 - 基础篇(3)- 日志管理
2017-02-09 09:39 8488Spring Boot支持JUL,Log4J2和Logback ...
相关推荐
在本篇“Spring Boot入门 - 基础篇(11)- 数据源配置”中,我们将探讨如何在Spring Boot项目中配置数据源,以便连接到数据库并执行相关的CRUD操作。Spring Boot以其自动化配置和简化开发流程而受到广泛欢迎,它使得...
本篇文章将深入探讨Spring Boot入门项目的构建过程,以及它如何与微服务和分布式系统相结合。 **1. Spring Boot基础知识** Spring Boot 的核心理念是“约定优于配置”。它通过内置的Tomcat服务器、自动配置的Spring...
总的来说,"spring-boot-study-base.zip"是一个很好的Spring Boot入门教程,它涵盖了从基础到实践的关键知识点。通过学习和实践,你可以快速掌握Spring Boot的精髓,从而在实际开发中提高效率,构建出更加健壮和灵活...
本篇将深入探讨dbApi-spring-boot-starter的使用,结合提供的"dbApi-spring-boot-starter-demo"案例代码,帮助开发者理解和实践这一工具。 一、dbApi-spring-boot-starter简介 dbApi-spring-boot-starter的核心...
Spring Boot支持文件上传功能,可以使用MultipartFile接口处理文件上传请求,结合Commons Multipart Resolver等组件,实现文件的上传、存储和下载。 通过以上各模块的学习和实践,读者将能够全面理解Spring Boot的...
在"spring boot入门篇demo+ppt"中,我们可以期待学习以下核心知识点: 1. **Spring Boot基础知识**:了解Spring Boot的基本概念,包括其设计目标、主要特性以及与其他Spring框架的关系。 2. **起步依赖(Starter)...
### 二、Spring Boot入门实例步骤 #### 1. 创建项目 首先,我们需要一个支持Spring Boot的IDE,如IntelliJ IDEA。然后,通过IDE的新建项目向导,选择Spring Initializr来创建一个新的Spring Boot项目。在这个向导...
接下来,我们来看 `spring boot入门篇.pptx`,这个PPT很可能是对Spring Boot基础知识的详细讲解,可能包括以下内容: 1. **Spring Boot简介**:介绍Spring Boot的诞生背景、目标以及主要特点。 2. **环境准备**:...
在本篇Spring Boot笔记中,我们将探讨Spring Boot的核心特性、如何创建一个简单的Spring Boot应用以及相关的Maven配置。Spring Boot是Spring框架的一个扩展,旨在简化Spring应用的初始搭建以及开发过程,提供了一种...
以上是 Spring Boot 基础篇的知识点,包括 Spring Boot 简介、快速上手 Spring Boot、Spring Boot 入门案例、parent starter 引导类、内嵌 Tomcat 基础配置、配置属性配置、yaml 文件语法规则、yaml 数据读取、整合...
### Spring Boot 官方文档知识点总结 #### 一、Spring Boot 概览 - **Spring Boot** 是一种基于 Java 的框架,它简化了基于 Spring 的应用程序的开发过程。 - **版本**: 此文档对应的版本为 **2.1.4.RELEASE**。 -...
通过阅读 "Spring boot(一): 入门篇.pdf" 和 "Spring boot(二):web综合开发.pdf",你可以深入了解 Spring Boot 的基本概念、快速上手指南以及如何进行 Web 应用的综合开发。这些资料将引导你从初识 Spring Boot 到...
本篇笔记将介绍Spring Boot的核心概念、微服务架构、环境准备、入门案例以及相关开发工具的配置方法。 1. Spring Boot简介 Spring Boot是由Pivotal团队提供的开源框架,它使用“约定优于配置”的原则,旨在简化...
- **基础篇**:介绍 Spring Boot 的基本概念、安装和配置等基础知识。 - **进阶篇**:探讨如何利用 Spring Boot 构建复杂的应用程序,包括安全性和性能优化等方面。 - **实践篇**:提供一系列实战案例,涵盖微服务...
在上一部分中,我们可能已经介绍了Spring Boot的基础知识和快速入门。在此阶段,我们将更进一步,通过代码示例深入了解Spring Boot的核心特性以及如何集成常用的数据库连接池Druid和SQL监控工具P6Spy。 首先,...
为了更好地理解和掌握 Spring Boot,本文将围绕其入门篇进行详细介绍。 #### 二、Spring Boot 的核心价值 1. **自动配置**:Spring Boot 提供了一系列的自动配置选项,这意味着开发者无需编写大量的配置代码,框架...
一、支持泥瓦匠关注泥瓦匠个人博客的更新我的博客-分享学习可落地的技术博文Spring Boot 2.x系列教程,spring boot实践学习案例,是...错误处理Spring Boot 2 快速教程WebFlux 系列教程大纲(一)『 基础 - 入门篇 』S
"基础篇-14-基础配置.mp4"是理解Spring Boot配置文件的关键,讲解了application.properties或application.yml的使用,以及如何进行环境变量的配置。"基础篇-18-yaml数据格式.mp4"专门针对YAML数据格式进行了讲解,...
在本篇【springBoot笔记二-来自于百度文库1】中,主要讲解了Spring Boot的基础概念、核心特性以及如何创建一个简单的Spring Boot项目。以下是详细的知识点解析: 1. **Spring Boot简介**: - Spring Boot是Spring...
本入门篇将介绍Spring Security的基础知识,包括其核心概念、配置以及如何在实际项目中使用。 1. **核心概念** - **Authentication(认证)**: 用户身份验证是Spring Security的基础,它确认用户的身份是否合法。...