Java中实现图片的上传
这边直接存放在c盘的指定目录,在property中指定了一个目录
没有花时间写用户操作的上传页面,直接用swagger2插件,可以上传
默认图片大小超过1mb就不可以上传,可以如下更改
server.port=8899
spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=3MB
spring.servlet.multipart.max-request-size=3MB
pic_path="C:\\pic\\"
sava_path=C:\\pic\\
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 56 57 58 59 60 61 62 63 64 65 66 67 68 | package com.example.demo.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.File; @RestController public class UploadController { @Value ( "${sava_path}" ) private String sava_path; @RequestMapping (path = "/save_photo" , method = {RequestMethod.POST}) public String addDish( @RequestParam ( "photos" ) MultipartFile file, HttpServletRequest request) throws Exception { String path = null ; // 文件路径 double fileSize = file.getSize(); System.out.println( "文件的大小是" + fileSize); byte [] sizebyte=file.getBytes(); System.out.println( "文件的byte大小是" + sizebyte.toString()); if (file != null ) { // 判断上传的文件是否为空 String type = null ; // 文件类型 String fileName = file.getOriginalFilename(); // 文件原名称 System.out.println( "上传的文件原名称:" + fileName); // 判断文件类型 type = fileName.indexOf( "." ) != - 1 ? fileName.substring(fileName.lastIndexOf( "." ) + 1 , fileName.length()) : null ; if (type != null ) { // 判断文件类型是否为空 if ( "GIF" .equals(type.toUpperCase()) || "PNG" .equals(type.toUpperCase()) || "JPG" .equals(type.toUpperCase())) { // 项目在容器中实际发布运行的根路径 String realPath = request.getSession().getServletContext().getRealPath( "/" ); // 自定义的文件名称 String trueFileName = String.valueOf(System.currentTimeMillis()) + "." + type; // 设置存放图片文件的路径 path = sava_path+fileName; System.out.println( "存放图片文件的路径:" + path); // 转存文件到指定的路径 file.transferTo( new File(path)); System.out.println( "文件成功上传到指定目录下" ); return "文件成功上传到指定目录下" ; } } else { System.out.println( "不是我们想要的文件类型,请按要求重新上传" ); return "不是我们想要的文件类型,请按要求重新上传" ; } } else { System.out.println( "文件类型为空" ); return "文件类型为空" ; } return "已经成功上传到指定目录" ; } } |
pom.xml
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | <?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 . 6 .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> <repositories> <repository> <id>alimaven</id> <name>aliyun maven</name> <url>http: //maven.aliyun.com/nexus/content/groups/public/</url> <layout> default </layout> <snapshots> <enabled> false </enabled> </snapshots> </repository> </repositories> <properties> <java.version> 1.8 </java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</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-web</artifactId> </dependency> <!--Swagger-ui配置--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version> 2.9 . 2 </version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version> 2.9 . 2 </version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> |

分类:
02_Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?