参考:Java springboot进阶教程 文件上传功能实现 后端代码编写 常见错误分析与解决

在 Service 业务层接口中增加一个上传文件的方法

因为文件并不是上传至数据库中,所以不需要编写 Dao 数据接口层相关的代码

public interface XxxService {
...
R upload(MultipartFile file);
}

在 Impl 实现类中实现这个方法

public class XxxServiceImpl implements XxxService {
...
@Override
public R upload(MultipartFile file) {
// 对文件判空
if (file.isEmpty()) {
return R.error("文件为空");
// 返回一个 R 类型给前端
// R 为规定数据格式的统一返回对象
}
String originalFileName = file.getOriginalFilename();
// ↑ 获取文件的名称
String fileName = System.currentTimeMillis() + "." + originalFileName.substring(originalFileName.lastIndexOf(".") + 1);
// ↑ 以当前时间戳对文件进行重命名,并保存文件名后缀
String filePath = "/home/hsk/tempdownload/";
// ↑ 设定文件的所要上传的服务器路径
File dist = new File(filePath + fileName); // ↓ 对文件路径判空
if (!dist.getParentFile().exists()) {
dist.getParentFile().mkdirs();
// ↑ 若文件路径不存在则创建
}
try {
// ↓ 上传文件
file.transferTo(dist);
} catch (Exception e) {
e.printStackTrace();
return R.error("上传失败");
}
return R.success("上传成功");
}
}

Controller 表现层实现

这里为了方便没有写测试类,直接在 Controller 包下新建了 UploadTestContoller

package com.example.xxx.controller;

import ...

@RestController
@RequestMapping("/upload")
public class UploadTestController {
@Autowired
private XxxService xxxService; // ↓ 使用 put 方法上传
@PutMapping
private R upload(@RequestParam("file") MultipartFile file) {
return xxxService.upload(file);
// 所返回的是一个 R 对象
}
}

测试

使用例如 Postman 等测试工具,我这里用的是 Apifox

看一下本地的目录:

上传成功!

SpringBoot 实现文件上传的更多相关文章

  1. SpringBoot图文教程4—SpringBoot 实现文件上传下载

    有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 文章结尾配套自测面试题,学完技术自我测试更扎实 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例 ...

  2. SpringBoot 整合文件上传 elment Ui 上传组件

    SpringBoot 整合文件上传 elment Ui 上传组件 本文章记录 自己学习使用 侵权必删! 前端代码 博主最近在学 elment Ui 所以 前端使用 elmentUi 的 upload ...

  3. springboot+web文件上传和下载

    一.首先安装mysql数据库,开启web服务器. 二.pom.xml文件依赖包配置如下: <?xml version="1.0" encoding="UTF-8&q ...

  4. SpringBoot(3) 文件上传和访问

    springboot文件上传 MultipartFile file,源自SpringMVC MultipartFile 对象的transferTo方法,用于文件保存(效率和操作比原先用FileOutS ...

  5. SpringBoot的文件上传

    先在src/main/resources下新建一个static目录用以存放html页面,简单的html页面如下 <!DOCTYPE html> <html> <head& ...

  6. springBoot的文件上传功能

    知识点: 后台:将上传的图片写入指定服务器路径,保存起来,返回上传后的图片路径(在springBoot中,参考博客:http://blog.csdn.net/change_on/article/det ...

  7. SpringBoot下文件上传与下载的实现

    原文:http://blog.csdn.net/colton_null/article/details/76696674 SpringBoot后台如何实现文件上传下载? 最近做的一个项目涉及到文件上传 ...

  8. Angular14 利用Angular2实现文件上传的前端、利用springBoot实现文件上传的后台、跨域问题

    一.angular2实现文件上传前端 Angular2使用ng2-file-upload上传文件,Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng ...

  9. springboot 修改文件上传大小限制

    springboot 1.5.9文件上传大小限制spring:http:multipart:maxFileSize:50MbmaxRequestSize:50Mb springboot 2.0文件上传 ...

  10. SpringBoot实现文件上传

    前言参考:快速开发第一个SpringBoot应用 这篇文章会讲解如何使用SpringBoot完成一个文件上传的过程,并且附带一些SpringBoot开发中需要注意的地方 首先我们写一个文件上传的htm ...

随机推荐

  1. c# 多线程环境下控制对共享资源访问的办法

    Monitor: 定义:Monitor 是 C# 中最基本的同步机制,通过 Enter 和 Exit 方法来控制对共享资源的访问.它提供了排他锁的功能,确保在任何时刻只有一个线程可以访问共享资源. 优 ...

  2. docker 安装 centos8 mysql8 java tomcat

    docker 安装 centos8  mysql8  java tomcat 一,首先在window10系统安装docker,这里就不再描述了. 二,启动docker下载安装centos8镜像 注意: ...

  3. Spring AOP概念及原理

    Spring AOP(面向切面编程) 以下内容由ChatGPT生成 AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在通过分离关注点来提高程序的模块化. ...

  4. 【Hibernate】04 主键策略 & CRUD

    实体类编写规范: - 每个属性不应该被公开的访问,设置私有 - 提供可以访问和设置的方法,GETTER & SETTER - 必须编写一个主键属性[ID 唯一值] - 建议使用基本类型的包装类 ...

  5. 【OracleDB】 03 数据类型和常见对象概述

    我们可以通过PLSQL来查看Oracle的数据类型 总分类: - 字符型 1.CHAR 0 - 2000 字节 固定长度字符串 2.NCHAR 0 - 1000 字节 固定长度字符串[Unicode字 ...

  6. NVIDIA具身机器人实验室 —— GEAR —— Generalist Embodied Agent Research —— NVIDIA机器人实验室

    相关: https://www.youtube.com/watch?v=jbJPG2H8hn4

  7. 论文《policy-gradient-methods-for-reinforcement-learning-with-function-approximation 》的阅读——强化学习中的策略梯度算法基本形式与部分证明

    最近组会汇报,由于前一阵听了中科院的教授讲解过这篇论文,于是想到以这篇论文为题做了学习汇报.论文<policy-gradient-methods-for-reinforcement-learni ...

  8. 国产CPU——兆芯(先开)KX-6640MA 使用感受

    上半年买了个兆芯CPU的小mini电脑,一直没有换Windows系统,这两天想着就换了过来,具体配置如下: 1.  使用Python死循环代码烧机,性能和我14年买的i5-4200M的Intel CP ...

  9. java中获取本机IP

    1.背景 2.代码 package com.XXX.common.util; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4 ...

  10. DataOps 新趋势:联通数科如何利用 DolphinScheduler 实现数据一体化管理

    引言 在DataOps(数据运营)的推动下,越来越多的企业开始关注数据研发和运营的一体化建设.DataOps通过自动化和流程优化,帮助企业实现数据的高效流转和管理. 当前,Apache Dolphin ...