首页 > 其他分享 >SpringBoot上传图片到指定目录并回显

SpringBoot上传图片到指定目录并回显

时间:2023-10-23 18:00:35浏览次数:32  
标签:文件 SpringBoot 回显 filePath file images new 上传 图片

一、概述

  案例:

    1.利用SpringBoot写一个后台

    2.接收前端传递过来的图片并保存到服务器。

    3.前端可以通过url访问上传过的图片

  步骤:

    1.写一个FileController专门用来接收前端提交的图片文件,并把图片保存到服务器的指定位置

    2.配置WebMvcCongurer,在其addResourceHandlers方法中设置资源映射

    3.编写前端进行测试

二、代码示例

    1.FileInfoController.java

@RequestMapping(value = "upload", method = RequestMethod.POST)
    public ResultOk upload(@RequestParam("file") MultipartFile file) {
       // 获取文件在服务器上的存储位置
        String serverPath = globalProperties.getFilePath();
        // 获取允许上传的文件扩展名
        String extension = globalProperties.getExtension();
        File filePath = new File(serverPath);
        log.info("文件保存的路径为:" + filePath);
        if (!filePath.exists() && !filePath.isDirectory()) {
            log.info("目录不存在,则创建目录:" + filePath);
            filePath.mkdir();
        }
        // 判断文件是否为空
        if (file == null) {
            return new ResultOk(200,"参数文件为空");
        }
        //判断文件是否为空文件
        if (file.getSize() <= 0) {
            return new ResultOk(200,"文件为空");
        }

        // 判断文件大小不能大于50M
        if (DEFAULT_MAX_SIZE != -1 && file.getSize() > DEFAULT_MAX_SIZE) {
            return new ResultOk(200,"文件不能大于50M");
        }

        // 获取文件名
        String fileName = file.getOriginalFilename();
        // 获取文件扩展名
        String fileExtension = fileName.substring(fileName.lastIndexOf(".")).toLowerCase();

        // 判断文件扩展名是否正确
        if (!extension.contains(fileExtension)) {
            return new ResultOk(200,"文件扩展名不正确");
        }

        FileInfo fileInfo = new FileInfo();
        // 重新生成的文件名
        String saveFileName = System.currentTimeMillis() + fileExtension;
        // 在指定目录下创建该文件
        File targetFile = new File(filePath, saveFileName);

        log.info("将文件保存到指定目录");
        try {
            file.transferTo(targetFile);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        // 保存数据
        fileInfo.setFileName(fileName);
     //要存入数据库的图片的全路径,其中images是访问图片的前缀(和WebMvcConfigurer中设置的资源映射关系保持一致) fileInfo.setFilePath("http://localhost:8081/images/" + saveFileName); fileInfo.setFileSize(file.getSize()); log.info("新增文件数据"); // 新增文件数据 return fileService.upload(fileInfo); }

  2.设置服务器图片资源映射关系

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //图片资源映射
     //其中/images是访问图片资源的前缀,比如要访问test1.png。则全路径为:http://localhost:端口号/images/test1.png registry.addResourceHandler("/images/**") .addResourceLocations("file:E:/tony/demo/res/");//此处为设置服务端存储图片的路径(前段上传到后台的图片保存位置)
} }

  

  3.以上两步设置完成后就可以在在浏览器中访问上传到服务端的图片了,例如:http://localhost:8081/images/1698054658204.jpeg

 

标签:文件,SpringBoot,回显,filePath,file,images,new,上传,图片
From: https://www.cnblogs.com/tony-yang-flutter/p/17783098.html

相关文章

  • SpringBoot-自动配置原理
    导入start就会导入autoconfigure包autoconfigure包下面的META-INF/spring/org.springframe.boot.autoconfigure.AutoConfigation.imports文件存放了所有的xxxAutoConfigation自动配置类@EnableAutoConfigation注解,会把上面文件中的所有的自动配置类都导入进来,按需要加载。xxxA......
  • Selenium4 上传文件,弹出对话框(非input框)
    场景:点击一个按钮,然后弹出对话框,从本地选择需要上传的文件,自动关闭对话框。最后在点击web页面的ok按钮提交上传文件。ps:因为这里是按钮上传,所以用input框的sendkeys方法是无法上传成功的了。下面是点击按钮上传成功的案例,需要注意的是,上传时,还需要了解各个按键是什么text来......
  • java实现文件上传到服务器
    本文实例为大家分享了java实现文件上传到服务器的具体代码,供大家参考,具体内容如下1、运行jar包,发送post请求publicstaticvoidmain(String[]args){    //StringfilePath="C:/Users/706293/IT_onDuty.xls";    StringfilePath=args[0];    String......
  • AntDesignVue 通过点击确定按钮实现文件上传
    示例图相关代码<template><div><a-modalv-model:visible="props.uploadVisible"width="1300px":footer="null"maskClosable@......
  • java上传文件到服务器指定目录
    问题描述:如何在Java中实现文件上传功能,并将上传的文件保存到服务器的指定目录?解答:在Java中,可以使用一些库和框架来实现文件上传功能,其中最常用的是使用ApacheCommonsFileUpload库。下面将详细介绍如何使用该库来实现文件上传并将文件保存到服务器指定目录的过程。步骤一:导入......
  • git push使用LFS上传超过100M的文件,亲测有效
     一、问题描述使用gitpush将一个173.86MB的文件推送到GitHub时出现如下报错remote:error:Trace:5c39a1831dc9eced8723579b000596bbbeb91a9069931bbdf49b058aaaf1f64cremote:error:Seehttps://gh.io/lfsformoreinformation.remote:error:Filelinux-zero-......
  • TestLink上传xml文件报错:错误的测试用例集xml文件
    将测试用例转化为xml文件后,上传,总是报错: 仔细观察理解后发现,原来TestLink分两种:测试用例集和测试用例: 测试用例集相关的编辑、导入等,通过第一行来进行;而测试用例则通过第二行进行操作,弄清楚原因后,选中下面那个导入,再试一下: 果然导入成功了 ......
  • java上传文件到指定服务器
    Java上传文件到指定主机必须条件先决条件是要知道上传到指定的主机,需要知道它的用户密码。代码pom.xml<!--图片上传到服务器需要的依赖--><dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.54<......
  • 文件上传请求头设置
    文件上传请求头设置涉及到文件上传时接口需要配置请求头:headers:{‘Content-Type’:‘multipart/form-data’}例如://导入excel数据exportfunctionimportStorage(data){returnrequest({url:'/agcloud/zhps/storage/importFile',method:'p......
  • 老大加需求:做一个支持超大文件 HTTP 断点续传的上传服务,我懵逼了~
    作者:大飞飞鱼来源:blog.csdn.net/ababab12345/article/details/80490621Part1前言最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件(大都数是4GB以上)的http上传,并且要求支持http断点续传。笔者在以前的博客如何实现支持大文件的高性能HTTP文件上传服务器已经介绍了......