如何使用Java SpringBoot实现文件上传功能
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,小编给大家分享一下如何使用Java SpringBoot实现文件上传功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!测试代码pom.xml:
千家信息网最后更新 2025年02月24日如何使用Java SpringBoot实现文件上传功能
小编给大家分享一下如何使用Java SpringBoot实现文件上传功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
测试代码
pom.xml:
4.0.0 org.springframework.boot spring-boot-starter-parent 2.6.2 jar com.kaven springboot 0.0.1-SNAPSHOT springboot springboot 1.8 org.springframework.boot spring-boot-starter-web org.projectlombok lombok org.springframework.boot spring-boot-maven-plugin
application.properties(配置文件):
spring.servlet.multipart.max-file-size=500MB
spring.servlet.multipart.max-request-size=500MB
max-file-size:指定允许上传文件的最大大小,默认值为1MB。
max-request-size:指定允许multipart/form-data请求的最大大小,默认值为10MB。
上传接口:
package com.kaven.springboot.controller;import org.apache.tomcat.util.http.fileupload.IOUtils;import org.springframework.http.HttpStatus;import org.springframework.util.StringUtils;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletResponse;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;@RestControllerpublic class FilesController { @PostMapping(value="/upload", headers="content-type=multipart/form-data") public String upload(@RequestParam(value = "file") MultipartFile file, HttpServletResponse response) throws IOException, InterruptedException { System.out.println("有文件上传请求进来了"); FileOutputStream fileOutputStream = null; InputStream inputStream = null; try { // 上传文件是否存在 if (file != null && !file.isEmpty()) { // 如果上传文件存在,获取它的原始文件名 String fileName = file.getOriginalFilename(); if (StringUtils.hasText(fileName)) { // 将上传文件存储在服务器的E盘下(Windows) java.io.File outFile = new java.io.File("E:\" + fileName); // 基于outFile创建文件输出流实例 fileOutputStream = new FileOutputStream(outFile); // 获取上传文件的输入流 inputStream = file.getInputStream(); /* * 将字节从输入流复制到输出流 * 此方法在内部会缓冲输入,因此无需使用BufferedInputStream * 大型流(超过2GB)将在复制完成后返回字节复制值-1 ,因为无法将正确的字节数作为int返回 * 对于大型流,需要使用copyLarge(InputStream, OutputStream)方法 * 参数: * input - 要读取的InputStream * output - 要写入的OutputStream * */ IOUtils.copy(inputStream, fileOutputStream); } } else { // 文件不存在 response.setStatus(HttpStatus.BAD_REQUEST.value()); return "文件不存在"; } } catch (Exception e) { // 文件上传错误 e.printStackTrace(); response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); return "文件上传错误"; } finally { if (fileOutputStream != null) { fileOutputStream.flush(); fileOutputStream.close(); } } // 文件上传成功 response.setStatus(HttpStatus.OK.value()); return "文件上传成功"; }}
启动类:
package com.kaven.springboot;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class SpringbootApplication { public static void main(String[] args) { SpringApplication application = new SpringApplication(SpringbootApplication.class); application.run(args); }}
使用Postman
进行测试。
上传的文件是完整的,可以播放(视频文件)。
上传文件不存在。
控制台的输出。
看完了这篇文章,相信你对"如何使用Java SpringBoot实现文件上传功能"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
文件
字节
输入
输出
功能
最大
成功
大小
篇文章
错误
测试
原始
代码
参数
完了
实例
接口
控制台
文件名
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络技术专业有前途吗
网络安全保护方式最常用的方式为
netbeans软件开发
sftp服务器
金山区智能化软件开发采购
广州创百通网络技术有限公司
联合网络安全设计
dsp的软件开发流程
国泰安数据库怎样导入公司代码
宝山区无线网络技术创新服务
从事软件开发工作什么证书好
阿里将公布新零售互联网科技
传奇服务器玩家规章制度
5万用户用多大服务器
深圳人事管理软件开发商
服务器启动 b7
常州安卓系统软件开发公司
花都app软件开发方案
互联网科技未来城
比较成功的软件开发项目
戴尔t440服务器增加显卡
山东蓝狐网络技术
战地4枪服务器
三级网络技术电子课本
mysql数据库掉
sfew数据库
mysql数据库实用工具
浏览器数据库清理
什么叫网络技术支持
软件开发项目总监工作职责