博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(十七)JAVA springcloud ssm b2b2c多用户商城系统-上传文件
阅读量:6638 次
发布时间:2019-06-25

本文共 3207 字,大约阅读时间需要 10 分钟。

hot3.png

这篇文章主要介绍,如何在springboot工程作为服务器,去接收通过http 上传的multi-file的文件。

构建工程

为例创建一个springmvc工程你需要spring-boot-starter-thymeleaf和 spring-boot-starter-web的起步依赖。为例能够上传文件在服务器,你需要在web.xml中加入标签做相关的配置,但在sringboot 工程中,它已经为你自动做了,所以不需要你做任何的配置。

org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-thymeleaf

创建文件上传controller

直接贴代码:

@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
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 handleFileUpload(@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 exc) { return ResponseEntity.notFound().build(); } }

这个类通过@Controller注解,表明自己上一个Spring mvc的c。每个方法通过 

@GetMapping 或者@PostMapping注解表明自己的 http方法。

  • GET / 获取已经上传的文件列表
  • GET /files/{filename} 下载已经存在于服务器的文件
  • POST / 上传文件给服务器

创建一个简单的 html模板

为了展示上传文件的过程,我们做一个界面: 

在src/main/resources/templates/uploadForm.html

    

File to upload:

上传文件大小限制

如果需要限制上传文件的大小也很简单,只需要在springboot 工程的src/main/resources/application.properties 加入以下:

spring.http.multipart.max-file-size=128KBspring.http.multipart.max-request-size=128KB

架构代码如下 :

"分布式b2b <wbr

Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六 

转载于:https://my.oschina.net/u/4045192/blog/3007669

你可能感兴趣的文章
敏捷技能修炼:敏捷软件开发与设计的最佳实践
查看>>
ChartFX for .NET 6.0.1262.25350 破解
查看>>
msm8610 lcd driver code analysis
查看>>
csharp: read excel using Aspose.Cells
查看>>
简单的邮件客户端
查看>>
Java Socket重要参数讲解
查看>>
【转】GitHub 中国区前 100 名到底是什么样的人?
查看>>
Unity 2017.2正式发布,新功能详解(下)(转)
查看>>
Arduino舵机控制
查看>>
使用php脚本查看已开启的扩展
查看>>
C和C++混合编程(__cplusplus 与 external "c" 的使用)
查看>>
页面返回顶部的方法总结
查看>>
linux内存管理
查看>>
chrome插件vimium的安装和使用
查看>>
[Note]CLR via C#3-Metadata review
查看>>
Dynamic Random Access for Hadoop Distributed File System
查看>>
如何让 Firefox,Chrome,Safari 浏览器模拟 iPad User Agent
查看>>
【转】C++的继承与多态:为什么需要虚函数
查看>>
Redis如何处理客户端连接
查看>>
C语言的原码,反码,补码
查看>>