- 浏览: 3514411 次
- 性别:
- 来自: 大连
博客专栏
-
使用Titanium Mo...
浏览量:37483
-
Cordova 3.x入门...
浏览量:604351
-
常用Java开源Libra...
浏览量:678121
-
搭建 CentOS 6 服...
浏览量:87298
-
Spring Boot 入...
浏览量:399823
-
基于Spring Secu...
浏览量:69078
-
MQTT入门
浏览量:90494
文章分类
最新评论
-
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 17505作为Spring Boot的另外一大亮点,就是actuator ... -
Spring Boot 入门 - 进阶篇(7)- 自动配置(AutoConfigure)
2017-03-16 11:05 62140自动配置是Spring Boot的最大亮点,完美的展示了CoC ... -
Spring Boot 入门 - 进阶篇(6)- 启动加载(CommandLineRunner)
2017-03-15 15:04 14976启动成功后可以通过以下方法运行自己的初始代码: @PostCo ... -
Spring Boot 入门 - 进阶篇(5)- 数据缓存(@Cacheable)
2017-03-14 16:28 34567缓存可以缓解数据库访 ... -
Spring Boot 入门 - 进阶篇(4)- REST访问(RestTemplate)
2017-03-14 11:07 45171经常需要发送一个GET/POST请求到其他系统(REST AP ... -
Spring Boot 入门 - 进阶篇(3)- 定时任务(@Scheduled)
2017-03-13 13:23 23653主要用于定时发送邮件、夜间自动维护等。 (1)开启定时任务功 ... -
Spring Boot 入门 - 进阶篇(2)- 异步调用(@Async)
2017-03-07 15:59 20003异步处理 Java的异步处理Thread/Runnable、 ... -
Spring Boot 入门 - 进阶篇(1)- Servlet、Filter、Listener、Interceptor
2017-03-07 10:39 10547用户认证授权、日志记录MDC、编码解码、UA检查、多端对应等都 ... -
Spring Boot 入门 - 基础篇(15)- 工程部署
2017-02-16 15:31 8993(1)开发阶段 一般开发过程: 1)-写代码 2)- [Ru ... -
Spring Boot 入门 - 基础篇(14)- 参数设置
2017-02-16 15:25 5679(1)读取优先顺序 a - 命令行参数 --key=val ... -
Spring Boot 入门 - 基础篇(13)- 异常处理
2017-02-16 10:23 8606先要了解Spring的异常处理:http://rensanni ... -
Spring Boot 入门 - 基础篇(12)- 数据校验
2017-02-16 09:53 19759除过在客户端做JavaScript数据校验外,服务器端做数据校 ... -
Spring Boot 入门 - 基础篇(11)- 数据源配置
2017-02-15 11:12 16318(1)单一数据源 默认Spring Boot会在classp ... -
Spring Boot 入门 - 基础篇(10)- 发送邮件
2017-02-14 10:04 2430(1)配置 pom.xml <dependency> ... -
Spring Boot 入门 - 基础篇(8)- 数据库操作
2017-02-10 16:17 8606(1)导入mybatis-spring-boot-starte ... -
Spring Boot 入门 - 基础篇(7)- 国际化
2017-02-10 13:58 13075Spring Boot默认支持国际化配置,只需要添加配置文件即 ... -
Spring Boot 入门 - 基础篇(6)- 页面模板
2017-02-09 15:00 6396Spring Boot支持很多模板引擎,但嵌入式容器JSP有限 ... -
Spring Boot 入门 - 基础篇(5)- 使用WebJars
2017-02-09 14:20 11664WebJars能使Maven的依赖管理支持OSS的JavaSc ... -
Spring Boot 入门 - 基础篇(4)- 静态资源
2017-02-09 13:10 10648静态资源包括:HTML、CSS、JS、图像、视频、PDF/Of ... -
Spring Boot 入门 - 基础篇(3)- 日志管理
2017-02-09 09:39 8421Spring Boot支持JUL,Log4J2和Logback ...
相关推荐
NULL 博文链接:https://rensanning.iteye.com/blog/2357171
00、尚硅谷_SpringBoot_源码、课件 01、尚硅谷_SpringBoot_入门-课程简介 02、尚硅谷_SpringBoot_入门-Spring Boot简介 03、尚硅谷_SpringBoot_入门-微服务简介 04、尚硅谷_SpringBoot_入门-环境准备 05、尚硅谷_...
---Day01SpringBoot基础重温篇.mp4 ---Day02SpringBoot核心原理篇.mp4 ---Day03SpringBoot完美收官篇.mp4 优秀作业名单 ---Day01优秀作业名单(排名不分先后).txt ---Day02优秀作业名单(排名不分先后).txt 源码和软件...
该资源是Spring全家桶视频课程的第三部分Spring Boot的源码,其对于Spring Boot的最常用的第一个小程序、JavaConfig和常见注解、启动改变、热部署、Springboot整合Thymeleaf/freemarker/JSP、异常处理、配置文件、...
Spring Boot入门 Spring Boot配置 Spring Boot与日志 Spring Boot与Web开发 Spring Boot与Docker Spring Boot与数据访问 Spring Boot启动配置原理
主要给大家介绍了关于Spring boot的相关资料,本文属于基础入门教程,对各位学习Spring boot的新手们具有一定的参考学习价值,,要的朋友们下面来一起看看吧。
一、Spring Boot 入门 1、Spring Boot 简介 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 2、微服务 2014,martin fowler 微服务:架构风格(服务微化) 一个应用...
推荐工具:-OpenWrite:Markdown微信编辑器是一种... 二,系列文章目录『Spring Boot 2快速教程』『基础-入门篇』『基础-Web业务开发篇』Spring Boot使用Swagger2构建RESRful API文档Spring Boot集成JSP 弹簧靴集成胸腺
入门/基础 - 在本文中,我们将学习如何使用 Spring MVC 5 +、JSP、Maven 构建工具和 Eclipse IDE 创建一个简单的 Hello World Spring MVC 应用程序 - 在本文中,我们将学习如何使用 Spring MVC 5+、Maven 构建工具、...
Spring启动教程项目简介Spring Boot Tutorial是一个入门级的教程,主要包含Spring Boot的使用,以及如何集成各种第三方组件等内容。比较适合初学Spring Boot的同学们。博客:本系列教程PDF:准备中,尽请期待...目录...
02、尚硅谷_SpringBoot_入门-Spring Boot简介 03、尚硅谷_SpringBoot_入门-微服务简介 04、尚硅谷_SpringBoot_入门-环境准备 05、尚硅谷_SpringBoot_入门-springboot-helloworld 06、尚硅谷_SpringBoot_入门-...
这个例子展示了如何将Angular和Spring Boot部署到Heroku。 它还显示了如何使用ng deploy将Angular部署到Firebase,Netlify和AWS S3。 请阅读以了解如何创建此应用程序。 这篇博客文章是系列文章的第3部分。 本系列...
Atomikos曾介绍使用TCC作为微服务的分布式事务解决方案,有一篇简单的译文可作为入门资料。经文章叙述,Atomikos所设计的TCC交互完全整合在HTTP协议之上,并充分地替代了HTTP语义特性,是一个与应用层协议紧接解决...
小编 做的这个项目有部分功能用到了 Activiti工作流,目前对工作流的掌握程度是基本会用,我之前写过一篇 Activiti 入门篇,当前这篇文章是属于Activiti 实战部分,如果你想知道Activiti 工作流是如何使用的话,那就...
包含:socket网络编程及实战,系统学习docker,看的见的算法 7个经典应用诠释算法精髓,一站式学习Redis 从入门到高可用分布式实践,Spring Boot 2.0深度实践之核心技术篇,Scala 学习 进击大数据Spark生态圈,剑指Java面试...
这两个基本上是主要问的Java框架: 框架这部分包含很多,入门框架有Spring、Spring MVC、Mybatis,目前SSH很少使用了,微服务生态这边有Spring Boot、Spring Cloud分布式:市面上流行的分布式框架,分布式缓存,消息...