springBoot(10):web开发-文件上传

简介:

一、简介

Spring Boot默认使用springMVC包装好的解析器进行上传

二、代码实现

2.1、from表单

1
2
3
4
< form  method = "POST"  enctype = "multipart/form-data"  action = "/file/upload" >
     文件:< input  type = "file"  name = "roncooFile"  />
     < input  type = "submit"  value = "上传"  />
</ form >

2.2、controller

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package  com.example.demo.controller;
 
import  org.slf4j.Logger;
import  org.slf4j.LoggerFactory;
import  org.springframework.stereotype.Controller;
import  org.springframework.web.bind.annotation.RequestMapping;
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: 我爱大金子
  * @Description: 文件上传
  * @Date: Created in 11:08 2017/6/18
  */
@Controller
@RequestMapping (value =  "/file" )
public  class  FileController {
     private  static  final  Logger logger = LoggerFactory.getLogger(FileController. class );
     @RequestMapping (value =  "/upload" )
     @ResponseBody
     public  String upload( @RequestParam ( "roncooFile" ) MultipartFile file) {
         if  (file.isEmpty()) {
             return  "文件为空" ;
         }
         // 获取文件名
         String fileName = file.getOriginalFilename();
         logger.info( "上传的文件名为:"  + fileName);
         // 获取文件的后缀名
         String suffixName = fileName.substring(fileName.lastIndexOf( "." ));
         logger.info( "上传的后缀名为:"  + suffixName);
         // 文件上传路径
         String filePath =  "G:/workspace/file_space/img/" ;
         // 解决中文问题,liunx 下中文路径,图片显示问题
         //fileName = UUID.randomUUID() + suffixName;
         File dest =  new  File(filePath + fileName);
         // 检测是否存在目录
         if  (!dest.getParentFile().exists()) {
             dest.getParentFile().mkdirs();
         }
         try  {
             file.transferTo(dest);
             return  "上传成功" ;
         catch  (IllegalStateException e) {
             e.printStackTrace();
         catch  (IOException e) {
             e.printStackTrace();
         }
         return  "上传失败" ;
     }
}

2.3、application.properties

1
2
3
4
5
6
7
8
9
10
#默认支持文件上传
spring.http.multipart.enabled=true
#支持文件写入磁盘.
spring.http.multipart.file-size-threshold=0
#上传文件的临时目录
spring.http.multipart.location=G:/workspace/file_space/temp
# 最大支持文件大小
spring.http.multipart.max-file-size=1Mb
#最大支持请求大小
spring.http.multipart.max-request-size=10Mb

三、测试

wKiom1lGEl3x3-7CAAA89dPRYVA214.jpg

wKioL1lGEoeC-lx1AAAi-mcwfwc202.jpg

wKiom1lGErDDFc_aAABiia67UiQ192.jpg

本文转自我爱大金子博客51CTO博客,原文链接http://blog.51cto.com/1754966750/1939485如需转载请自行联系原作者


我爱大金子

相关文章
|
20天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
1月前
|
Web App开发 前端开发 开发工具
介绍Web开发的基础知识
介绍Web开发的基础知识
29 7
|
6天前
|
JSON Java fastjson
Spring Boot 底层级探索系列 04 - Web 开发(2)
Spring Boot 底层级探索系列 04 - Web 开发(2)
15 0
|
6天前
|
安全 编译器 PHP
PHP 8.1版本发布:引领Web开发新潮流
PHP编程语言一直是Web开发的主力军,而最新发布的PHP 8.1版本则为开发者们带来了更多创新和便利。本文将介绍PHP 8.1版本的主要特性,包括更快的性能、新的语言功能和增强的安全性,以及如何利用这些功能来提升Web应用程序的质量和效率。
|
9天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
9天前
|
前端开发 数据挖掘 API
使用Python中的Flask框架进行Web应用开发
【4月更文挑战第15天】在Python的Web开发领域,Flask是一个备受欢迎的轻量级Web框架。它简洁、灵活且易于扩展,使得开发者能够快速地构建出高质量的Web应用。本文将深入探讨Flask框架的核心特性、使用方法以及在实际开发中的应用。
|
18天前
|
安全 前端开发 Java
Java Web开发知识点学习总结
Java Web开发涉及Java基础、Servlet、JSP、数据库操作(SQL+JDBC)、MVC设计模式、Spring框架、Hibernate ORM、Web服务(SOAP&RESTful)、安全认证(HTTP Basic/Digest/OAuth)及性能优化(缓存、异步、负载均衡)。
17 3
|
21天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
25天前
|
前端开发 JavaScript 数据管理
描述一个使用Python开发Web应用程序的实际项目经验,包括所使用的框架和技术栈。
使用Flask开发Web应用,结合SQLite、Flask-SQLAlchemy进行数据管理,HTML/CSS/JS(Bootstrap和jQuery)构建前端。通过Flask路由处理用户请求,模块化代码提高可维护性。unittest进行测试,开发阶段用内置服务器,生产环境可选WSGI服务器或容器化部署。实现了用户注册登录和数据管理功能,展示Python Web开发的灵活性和效率。
14 4
|
1月前
|
API
2024常用Web支付开发讲解教程
本教程为web支付开发,讲解了最常用的两钟支付:支付宝支付和微信支付,服务器配置和API对接,学完本课程可以学会微信支付、和支付宝支付开发。
18 2
2024常用Web支付开发讲解教程