五、Spring Boot文件上传项目
2019-04-19 07:34
591 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cheng_0325/article/details/89392352
2、编写html页面:
一、项目结构
- statis这个目录里面应该存放一些静态文件,比如 css、js、image并且可以直接被外部访问到。而templates这个目录则存放一些静态页面,如jsp、html、ftl。并且template这个目录里的内容外部是访问不到的。
二、Spring Boot 编码过程
1、创建demo
创建第一个Spring Boot项目文件,可参考:《第一个Spring Boot 项目》
2、编写html页面:picUpload
<!DOCTYPE html> <html lang="en"> <head> <title>pictureUploading</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8 "> </head> <body> <form enctype="multipart/form-data" method="post" action="/upload"> 文件:<input type="file" name="fileUpload"/> <input type="submit" value="上传"/> </form> </body> </html>
- 注意:form标签里的enctype属性指定为:
multipart/form-data
。按照规范,我们将picUpload.html文件放到templates目录下。
3、页面跳转
-
现在通过:localhost:8080/index.html是访问不到该页面的。按照以前学习SpringMVC的经验,应该写一个controller,通过这个controller跳转到picUpload.html页面上去,再返回给用户。
-
ToHtmlController类:
package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author ${fwc} * @data 2019/4/18 * @time 17:32 */ @Controller public class ToHtmlController { @RequestMapping("/picUpload") public String picUpload(){ return "picUpload"; } }
4、添加依赖
指明模板引擎,这里我们使用thymeleaf,在pom.xml文件中添加如下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
5、测试测试页面启动效果
6、配置文件上传的文件大小限制
在
application.properties配置文件中添加如下代码:
# 上传文件总的最大值 spring.servlet.multipart.max-request-size=500MB # 单个文件的最大值 spring.servlet.multipart.max-file-size=50MB
spring.servlet.multipart.max-file-size
限制单个文件的最大值spring.servlet.multipart.max-request-size
限制上传的多个文件的总大小
7、处理表单
-
当选择完文件,点击上传按钮后,form表单会按照action属性值的url进行后端访问ation="/upload",此时我们应该写一个controller来接收前端传来的文件,并将文件存储到指定目录下。
-
UploadController.java
类:package com.example.demo;
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; /** * @author ${fwc} * @data 2019/4/17 * @time 19:45 */ @Controller public class UploadController { private static final Logger LOGGER = LoggerFactory.getLogger(UploadController.class); @PostMapping("/upload") @ResponseBody public String upload(@RequestParam("fileUpload") MultipartFile file) { if (file.isEmpty()) { return "上传失败,请选择文件"; } //上传保存的文件名 String fileName = file.getOriginalFilename(); //上传保存路径 String filePath = "/usr/local/springboot-workspace/temp/"; File dest = new File(filePath + fileName); try { file.transferTo(dest); LOGGER.info("上传成功"); return "上传成功"; } catch (IOException e) { LOGGER.error(e.toString(), e); } return "上传失败!"; }
8、pom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
四、运行测试
备注:注意上传后文件的存储路径
五、项目代码
链接:https://pan.baidu.com/s/1Fps1ku3yPb950ACqPhlK_A
提取码:2p1z
相关文章推荐
- springboot文件上传(1)(项目和文件资源放在同一个服务器上)
- springboot项目后台如何限制上传文件大小?
- 【JAVA-OSS】如何在spring-boot项目中使用oss上传下载文件
- 121 项目 016 笔记向 spring boot + nginx +filezilla 文件上传
- Spring Boot项目部署到Tomcat上传大文件失败
- Springboot 第一个项目(网站资源爬取)--练手吧(再弱弱的问一下怎么上传文件?)
- SpringBoot 简单文件上传实现以及jar包方式运行项目
- SpringBoot项目实现文件上传和邮件发送
- Springboot项目关于上传文件的大小限制
- spring-boot上传文件MultiPartFile获取不到文件问题解决
- springboot 配置springmvc文件上传大小
- 针对eclipse新建springboot项目 pom文件报错问题
- SPRINGBOOT之文件上传与下载
- spring boot工程文件上传出现net::ERR_CONNECTION_ABORTED,文件上传失败
- springBoot 连接打包成jar包运行时,获取图片上传文件、前端页面等文件
- SpringBoot完美配置阿里云的文件上传
- SpringBoot1.x升级SpringBoot2.x踩坑之文件上传大小限制
- [idea]springboot项目编译后jsp文件进不了target目录
- 多文件上传到本地服务器之SpringBoot
- spring-boot 实现文件上传下载