首页 > 其他分享 >SpringBoot实现文件图片上传并转换为虚拟路径

SpringBoot实现文件图片上传并转换为虚拟路径

时间:2023-04-11 22:59:02浏览次数:37  
标签:SpringBoot spring classpath filename 虚拟 multipart import 上传

页面代码

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/putpicture" method="post" enctype="multipart/form-data">
  <input type="file" name="picture">
  <input type="submit" value="上传图片">
</form>
</body>
</html>

注意,上传文件必须要把enctype="multipart/form-data"加上,不然无法上传

 Controller

package com.example.academicadministration.controller;

import lombok.SneakyThrows;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.UUID;

@Controller
public class TestController {
    @SneakyThrows
    @RequestMapping("/putpicture")
    public void PutPicture(MultipartFile picture){
        //获取文件名
        String filename= picture.getOriginalFilename();
        //获取文件后缀
        String suffixname=filename.substring(filename.lastIndexOf("."));
        //生成随机文件名
        filename= UUID.randomUUID()+suffixname;
        String filepath="你想保存的路径";
        //保存文件
        picture.transferTo(new File(filepath+filename));
    }
}

application.properties 

spring.mvc.static-path-pattern=你自定义的虚拟访问路径
Photo=图片真实的绝对路径
spring.web.resources.static-locations=classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources,file:${Photo}
spring.servlet.multipart.max-file-size=2MB 设置传输文件的最大容量
spring.webflux.multipart.headers-charset=UTF-8
mybatis.configuration.multiple-result-sets-enabled=true

 

标签:SpringBoot,spring,classpath,filename,虚拟,multipart,import,上传
From: https://www.cnblogs.com/liyiyang/p/17308173.html

相关文章

  • skywalking 监控 springboot项目
     部署探针打开idea开发工具Run-》EditConfigurations点击Modifyoptions-》AddVMoption-javaagent:E:\projectdeploy\apache-skywalking-apm-9.2.0\apache-skywalking-apm-bin\agent\skywalking-agent.jar-Dskywalking.agent.service_name=service-mylesson-jav......
  • 文件上传中遇到的问题
    SpringBoot应用上传文件时报错的原因及解决方案问题描述SpringBoot应用(使用默认的嵌入式Tomcat)在上传文件时,偶尔会出现上传失败的情况,后台报错日志信息如下:“Thetemporaryuploadlocationisnotvalid”。这个问题的根本原因是Tomcat的文件上传机制引起的!Tomcat在处理文......
  • Springboot集成dubbo完整过程(三)
    准备工作1,准备mysql服务环境2,准备redis服务环境3,准备zookeeper服务环境4,准备逆向生成bean的xml配置文件5,准备slf4j日志xml配置文件6,准备一个sql脚本1,搭建创建服务工程1,创建一个空的父工程,用来统一管理依赖2,创建一个interface接口工程,主要存放业务bean,接口类3,创建一......
  • #yyds干货盘点 springboot和vue搭建前后端项目实现员工的增删改查
    前言我是歌谣今天继续带来前后端项目的开发上次已经开发了部门管理,今天继续开发员工管理后端第一步empcontroller代码packagecom.itheima.controller;importcom.itheima.pojo.Emp;importcom.itheima.pojo.PageBean;importcom.itheima.pojo.Result;importcom.itheima.s......
  • umeditor粘贴图片自动上传到服务器(Java版)
    ​ 当前功能基于PHP,其它语言流程大致相同 1.新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action名称 */    "wordFieldName":"upfile",/* 提交的......
  • SpringBoot整合ElasticSearch8.x 踩坑记录
    背景jdk版本openjdk-17springboot版本2.6.11pom.xml<!--ElasticSearch提供的依赖--><dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.6.2</version>......
  • 【Docker】docker介绍 什么是虚拟化 容器与虚拟机比较 Docker 概念 docker安装
    目录docker介绍什么是虚拟化docker是什么容器与虚拟机比较Docker概念docker安装docker介绍什么是虚拟化在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍......
  • 虚拟机磁盘的扩容 ,及扩展磁盘也扩展分区。
    问题: 我在虚拟机中编译android12,200G的硬盘用完了,在95%的时候时候,提示空间不足,然后报错。已经编译了3个小时了,如果是别的情况,我就直接添加一块新的硬盘了,但是现在只能看看能不能直接扩容这个分区,毕竟我不行在从新编译一遍。 过程: 1 首先在虚拟机中把之前的硬盘......
  • EasyCVR平台如何正确配置设备移动侦测告警信息的上传?
    EasyCVR视频融合平台基于云边端协同架构,支持海量视频汇聚管理,平台融合性强、拓展灵活、视频能力丰富,具体包括:视频监控直播、轮播、录像、视频转码、云存储、检索与回看、告警上报、电子地图、云台控制、语音对讲、集群、级联共享等。用户在现场部署了EasyCVR,需要将设备的移动侦测告......
  • KindEditor粘贴图片自动上传到服务器(Java版)
    ​图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM.plugins['autoupload'],然后找到autoUploadHandler方法,注释掉其中的代码。加入下面的代码://判断剪贴......