SpringBoot上传文件
来源:互联网 发布:数据运营知乎 编辑:程序博客网 时间:2024/09/21 08:57
Spring官方文档教程
Github完整项目传送门
编写Maven配置文件,添加依赖
最后一个依赖是解析HTML文件,官方文档里好像没添加这个依赖,但是不添加的话会报错
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com</groupId> <artifactId>SpringBootUploadFile</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>SpringBootUploadFile Maven Webapp</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> </parent> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> <version>1.9.22</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
Controller类
package hello;import hello.storage.StorageFileNotFoundException;import hello.storage.StorageService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.core.io.Resource;import org.springframework.http.HttpHeaders;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.*;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder;import org.springframework.web.servlet.mvc.support.RedirectAttributes;import java.io.IOException;import java.util.stream.Collectors;/** * Created by abb on 17-5-17. */@Controllerpublic class FileUploadController { private final StorageService storageService; @Autowired public FileUploadController(StorageService storageService) { this.storageService = storageService; } @GetMapping("/") public String listUploadedFiles(Model model) throws IOException{ model.addAttribute("files",storageService .loadAll() .map(path -> MvcUriComponentsBuilder .fromMethodName(FileUploadController.class,"serveFile",path.getFileName().toString()) .build().toString()) .collect(Collectors.toList())); return "uploadForm"; } @GetMapping("/files/{filename:.+}") @ResponseBody public ResponseEntity<Resource> serveFile(@PathVariable String filename){ Resource file = storageService.loadAsResource(filename); return ResponseEntity .ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=\""+file.getFilename() + "\"") .body(file); } @PostMapping("/") public String handelFileUpload(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes){ storageService.store(file); redirectAttributes.addFlashAttribute("message", " you successfully uploaded " + file.getOriginalFilename() + "!"); return "redirect:/"; } @ExceptionHandler(StorageFileNotFoundException.class) public ResponseEntity handleStorageFileNotFound(StorageFileNotFoundException exception){ return ResponseEntity.notFound().build(); }}
Application类
package hello;import hello.storage.StorageProperties;import hello.storage.StorageService;import org.springframework.boot.CommandLineRunner;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.context.properties.EnableConfigurationProperties;import org.springframework.context.annotation.Bean;/** * Created by abb on 17-5-17. */@SpringBootApplication@EnableConfigurationProperties(StorageProperties.class)public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } @Bean CommandLineRunner init(StorageService storageService){ return (args) ->{ storageService.deleteAll(); storageService.init(); }; }}
application.properties即配置文件,设置上传文件最大大小等
文件路径:/src/main/resources/
spring.http.multipart.max-file-size=128KBspring.http.multipart.max-request-size=128KBspring.thymeleaf.mode=LEGACYHTML5
html页面
文件路径:/src/main/resources/templates/
<!DOCTYPE html><html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"><head> <meta charset="UTF-8"> <title>Title</title></head><body><div th:if="${message}"> <h2 th:text="${message}"/></div> <div> <form method="POST" enctype="multipart/form-data" action="/"> <table> <tr><td>File to upload:</td><td><input type="file" name="file" /></td></tr> <tr><td></td><td><input type="submit" value="Upload" /></td></tr> </table> </form> </div> <div> <ul> <li th:each="file : ${files}"> <a th:href="${file}" th:text="${file}" /> </li> </ul> </div></body></html>
页面效果
阅读全文
0 0
- SpringBoot文件上传
- springboot文件上传
- SpringBoot上传文件
- springboot 文件上传
- SpringBoot之文件上传
- springboot 文件上传
- SpringBoot实现文件上传
- springboot 上传文件
- Springboot 文件上传
- SpringBoot上传文件
- SpringBoot文件上传控制
- springboot上传文件
- springboot+文件上传和下载
- springboot实现多文件上传
- springboot 文件上传大小配置
- SpringBoot轻松实现文件上传
- 15.springboot实现文件上传
- SpringBoot文件上传和下载
- HowTomcatWorks学习笔记--连接器
- mysql 忘记密码、权限修改
- ButterKnife在androidStudio 2.3~2.4之后的bug以及解决思路
- IOS端K线系列之分时图-呼吸灯的制作(CABasicAnimation)
- Lazy Propagating 52C
- SpringBoot上传文件
- SpringMVC中利用@InitBinder来对页面数据进行解析绑定
- 渗透与入侵1-ipc
- 表单正则验证
- Android自定义组件之TextView
- mysql用SQL语句存储图片
- 使用Python脚本强化LLDB调试器
- 网卡链路聚合之bond
- commitAllowingStateLoss