首页 > 编程语言 >Java Springboot 接收前端上传图片,并返回路径让前端显示图片

Java Springboot 接收前端上传图片,并返回路径让前端显示图片

时间:2024-10-23 22:31:48浏览次数:1  
标签:Java String orgName File 前端 路径 file 图片

一、接收前端图片并保存并为前端返回一个图片路径.

 



@RestController
@RequestMapping("/upload")
public class UploadImgController {

    @Autowired(required = false)
    private ResourceLoader resourceLoader;

    @Value(value = "/Users/user/Java/Upload/ServerPro")
    private String uploadPath;


    /**
     * 时间格式化
     */
    private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd/");

    @PostMapping("/uploadImg")
    public Result uploadFile(@RequestParam("file") MultipartFile multipartFile) {
        try {
            if (multipartFile.isEmpty()) {
                return Result.error("文件为空,请重新选择!");
            }
            // 上传的图片全部保存在 "/Users/fangjinliang/Java/Upload/MyManagerPro/uploadImg/" 目录下
            File file = new File(uploadPath);
            if (!file.exists()) {
                // 创建完整的目录
                file.mkdirs();
            }
            // 获取文件原始名(包含后缀名)
            String orgName = multipartFile.getOriginalFilename();
            // 获取文件名(不包括后缀)
            String prefixName = orgName.substring(0, orgName.lastIndexOf("."));
            // 获取文件后缀名
            String suffixName = orgName.substring(orgName.lastIndexOf("."));
            // 这是处理后的新文件名
            String fileName;
            if (orgName.contains(".")) {
                // 示例:avatar.123.png,经过处理后得到:avatar.123_1661136943533.png
                fileName = prefixName + "_" + System.currentTimeMillis() + suffixName;
            } else {
                // 上传的图片没有后缀(这压根就不算是一个正常的图片吧?)
                return Result.error("上传图片格式错误,请重新选择!");
            }
            String savePath = file.getPath() + File.separator + fileName;
            File saveFile = new File(savePath);
            // 将上传的文件复制到指定目录
            FileCopyUtils.copy(multipartFile.getBytes(), saveFile);            // 返回给前端的图片保存路径;前台可以根据返回的路径拼接完整地址,即可在浏览器上预览该图片
            String path = "upload" + File.separator + fileName;
            if (path.contains("\\")) {
                path = path.replace("\\", "/");
            }
            return Result.ok().put("data",path);
        } catch (IOException e) {
            return Result.error(e.getMessage());
        }
    }
}

二、图片资源路径映射.(Mac 需在本地路径前加file:)

 

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry)
    {
        //其中/images是访问图片资源的前缀,比如要访问test1.png。则全路径为:http://localhost:端口号/images/test1.png
        registry.addResourceHandler("/upload/**")
                .addResourceLocations("file:/Users/user/Java/Upload/ServerPro/");//此处为设置服务端存储图片的路径(前段上传到后台的图片保存位置)
    }
}

 

三、访问图片

http://localhost:8080/upload/test1.png

 

 

 

标签:Java,String,orgName,File,前端,路径,file,图片
From: https://www.cnblogs.com/xiyangxixia/p/18498516

相关文章

  • uniapp图片上传功能前后端代码(java)
    注意点:1.接口名2.文件大小和类型限制3.后端服务器要启动4.如果前后端分离部署,确保后端支持跨域请求(CORS)前端代码:<template> <viewclass="main"> <image:src="imagesrc"@click="onclick"lazy-load=true style="top:470rpx;height:700rpx;width:700......
  • 行为设计模式 -观察者模式- JAVA
    责任链设计模式一.简介二.案例2.1抽象处理者(Handler)角色2.2具体处理者(ConcreteHandler)角色2.3测试三.结论3.1优缺点3.2示例3.3要点前言这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。作者:神的孩子都在歌唱一.简介......
  • Java 解析 XML 转换为 Json
    我们使用Java开发项目时偶尔会需要使用到Xml文件的解析,一般情况下都会使用DOM4j、SAX、JDOM等方案,但这些方案比较代码编写较为繁琐。我们经常使用的Json进行数据传输或存储,如果能够将Xml快速转换为Json,将会大大减轻我们后续开发和维护的工作量。本篇博客简单介绍使用......
  • springboot+vue展位设计模型库网站的java开发与设计
    目录系统实现截图详细技术介绍本课题软硬件环境核心代码部分展示其他springboot项目推荐详细视频演示源码获取系统实现截图详细技术介绍系统采用了基于SpringBoot、Vue和MySQL的三层结构体系。前端部分通过Vue框架构建用户界面,实现页面展示和交互功能,后端则利......
  • JAVA开源项目 基于Vue和SpringBoot购物商城网站
    本文项目编号T032,文末自助获取源码\color{red}{T032,文末自助获取源码}......
  • JAVA开源项目 基于Vue和SpringBoot高校心理教育辅导系统
    本文项目编号T031,文末自助获取源码\color{red}{T031,文末自助获取源码}......
  • Java Spring的常用注解详解和案例示范
    1.Spring常用注解概述1.1@Component@Component是Spring的基础注解之一,它用于将类标记为Spring容器中的一个组件。通过@Component注解,Spring会自动将该类注册为一个Bean,供依赖注入使用。使用示例:@ComponentpublicclassUserService{publicvoidperf......
  • Java程序启动“Hello, World!”详细分析
    在Java编程世界中,“Hello,World!”程序是学习旅程的起点。这个程序虽然简单,但它展示了Java程序的基本结构和从编写到运行的全过程。下面,我们将详细分析如何启动一个Java程序并输出“Hello,World!”。一.编写Java源代码首先,我们需要编写一个包含main方法的Java类。main......
  • vue3+java基于Spring Boot的爱老助老服务平台源码 lw 部署
    目录功能介绍具体实现截图技术介绍开发核心技术介绍:技术创新点vue3和vue2的区别:核心代码部分展示非功能需求分析系统开发流程软件测试源码获取功能介绍爱老助老服务平台的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使......
  • javascript对象介绍
    1.什么是对象?在JavaScript中,对象是一个无序的键值对集合,可以用来存储数据和功能。对象可以包含原始值、函数(方法)以及其他对象,是构建复杂数据结构和实现面向对象编程的基础。2.创建对象2.1字面量方式最常见的创建对象的方法是使用对象字面量:constperson={n......