springboot上传图片

  • 新建一个springboot项目;

  • 在java/main/com/ljx 创建一个controller.fileController类

    内容如下:

    package com.ljx.controller;
    ​
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.multipart.MultipartFile;
    ​
    import javax.servlet.http.HttpServletRequest;
    import javax.websocket.server.PathParam;
    import java.io.File;
    import java.io.IOException;
    import java.util.UUID;
    ​
    /**
    * @author 李捷禧
    * Date: 2022/12/13
    * ClassName: fileController
    */
    ​
    @Controller
    public class fileController {
    ​
    @GetMapping(value = "/file")
    public String file() {
    return "/file";
    }
    ​
    @PostMapping(value = "/fileUpload")
    public String fileUpload(@RequestParam(value = "file") MultipartFile file, Model model, HttpServletRequest request) {
    if (file.isEmpty()) {
    System.out.println("文件不能为空!");
    }
    // 文件名
    String fileName = file.getOriginalFilename();
    //后缀名,在文件名后面加“."
    String suffixName = fileName.substring(fileName.lastIndexOf("."));
    // 上传后的路径,自己设定要跟后面获取图片位置一样
    String filePath = "E://work//image//";
    // 新文件名
    fileName = UUID.randomUUID() + suffixName;
    //判断文件夹里面是否存在
    File dest = new File(filePath + fileName);
    //不存在就新建一个图片文件
    if (!dest.getParentFile().exists()) {
    dest.getParentFile().mkdirs();
    }
    //将文件存到新建文件的位置去
    try {
    file.transferTo(dest);
    } catch (IOException e) {
    e.printStackTrace();
    }
    //对应上面的文件路径
    String filename = "/work/image/" + fileName;
    model.addAttribute("filename", filename);
    return "/file";
    }
    }
    ​
    ​
  • 在com/ljx/config一个配置类

    内容如下:

    package com.ljx.config;
    ​
    /**
    * @author 李捷禧
    * Date: 2022/12/13
    * ClassName: MyWebAppConfigurer
    */
    ​
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    ​
    /**
    * 资源映射路径
    */
    @Configuration
    public class MyWebAppConfigurer implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/work/image/**").addResourceLocations("file:E:/work/image/");
    }
    }
    ​
  • 在application.properties文件加一下配置:

    spring.mvc.view.prefix=/WEB-INF/
    spring.mvc.view.suffix=.jsp
  • 在webapp/WEB-INF创建一个file.jsp

    内容如下:

  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/fileUpload" method="post" enctype="multipart/form-data">
<label>上传图片</label>
<input type="file" name="file"/>
<input type="submit" value="上传"/>
</form>
<p>图片:</p>
<img src="${filename}"/>
</body>
</html>

​

!注意:在此之前,需要项目配置好 jsp可运行环境,见以往博客园

运行结果是:

 

springboot上传图片的更多相关文章

  1. https://segmentfault.com/a/1190000012844836---------关于SpringBoot上传图片的几种方式

    关于SpringBoot上传图片的几种方式 https://segmentfault.com/a/1190000012844836

  2. Springboot上传图片并访问

    Springboot上传图片并访问 步骤 配置绝对路径,并将这个绝对路径添加到springboot静态资源目录中. 文件上传使用绝对路径保存.返回web相对路径,前端加上域名和项目路径,生成完整的路径 ...

  3. springboot上传图片大小限制

    背景:springboot项目上传图片超过1M报错,经了解,springboot默认上传文件1M 需求:更改默认配置,控制上传文件大小 方法:①更改配置文件(经试验不可行,不知道为什么):②更改启动B ...

  4. [原创]SpringBoot上传图片踩的坑

    最近项目里面有个需求,要上传图片到阿里云的OSS服务.所以需要写个上传图片的接口给前端. 这个简单的接口本来就给分配了1个工时,感觉也蛮简单的.但编码过程中遇到了好几个问题,现在一一记录下来,避免再次 ...

  5. springboot 上传图片与回显

    在网上找了很多例子,不能完全契合自己的需求,自行整理了下.需求是这样的:项目小,所以不需要单独的图片服务器,图片保存在服务器中任意的地方,并且可以通过访问服务器来获取图片.话不多说上代码: 1.依赖 ...

  6. springboot 上传图片

    1. 创建多层目录 创建多层目录要使用File的mkdirs()方法,其他可以使用mkdir()方法. 2. 文件大小限制 配置文件中,在spring1.4以后要使用 ` spring.http.mu ...

  7. springboot 上传图片,地址,在页面展示图片

    package com.cxwlw.zhcs.controller.api;import org.springframework.stereotype.Controller;import org.sp ...

  8. 如何在SpringBoot当中上传多个图片或者上传单个图片 工具类

    如何在SpringBoot当中上传多个图片[上传多个图片 ] 附赠工具类 1.SpringBoot 上传图片工具类 public class SpringUploadUtil { /*** * 上传图 ...

  9. ckeditor4.7配置图片上传

    ckeditor作为老牌的优秀在线编辑器,一直受到开发者的青睐. 这里我们讲解下 ckeditor最新版本4.7的图片上传配置. https://ckeditor.com/ 官方 进入下载 https ...

  10. Spring Boot进阶系列二

    上一篇文章,主要分析了怎么建立一个Restful web service,系列二主要创建一个H5静态页面使用ajax请求数据,功能主要有添加一本书,请求所有书并且按照Id降序排列,以及查看,删除一本书 ...

随机推荐

  1. MySQL-字段约束条件

    1.无符号.零填充 1.unsigned:用在生成表的过程中,表示不取负数,只取正数和0,负数会直接报错,eg:id int unsigned. 2.zerofill:用在生成表的过程中,跟在整形2后 ...

  2. 通过pdf模板,填充内容,生成pdf文件---JAVA

    1 概述 我们通常会遇到需要生成某些固定格式,但是内容不同的文件,那么我们就可以使用⽤Adobe Acrobat DC来创建pdf模块,然后通过代码对模板进行填充,生成pdf文件 2 创建一个pdf模 ...

  3. fiddler的简单使用

    一.fiddler接口测试介绍 二.fiddler过滤器的使用 fiddler可以指定只抓哪些包,通过filters实现 如果需要抓取多个网站,各个需要抓取的网站之间用分号隔开 三.fiddler抓取 ...

  4. keypoint数据结构

    公有属性 (float)angle:角度,表示关键点的方向,-1为初值. (int)class_id:当要对图片进行分类时,我们可以用class_id对每个特征点进行区分,未设定时为-1,需要靠自己设 ...

  5. ROS入门:小海龟实验

    1.初试小海龟 1.roscore 2.rosrun turtlesim turtlesim_node 3.rosrun turtlesim turtle_teleop_key 2.发布话题控制小海龟 ...

  6. 跟着廖雪峰学python 005

    ​ 函数的调用.定义.参数 ​编辑 #######命名关键字参数没完 abs()函数:绝对值 >>> abs(100) 100 >>> abs(-20) 20 ma ...

  7. Dao包 对数据库的操作

    //添加 public static int add(Bean1 bean){ String sql = "insert into classtable(classname,teacher, ...

  8. odoo 为可编辑列表视图字段搜索添加查询过滤条件

    实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图,列表网仓记录详情页面(form视图),编辑内联视图中的货主记录,为货主和仓库字段搜索,添加过滤 ...

  9. 关于php imagettftext 函数错误解决问题

    imagettftext 这个函数是给图片添加水印的,但是不知道为什么我用不起,直到在网上找到了答案: 是因为字体文件路径原因,相对路径可能我位置不对,该成绝对路径就没问题了! 把'Facon-2.t ...

  10. JavaSE基础 (全网最全知识点)

    背景介绍 java运行机理(即使编译型语言,又是解释型语言) 编译型语言(如:c语言) 源代码需要通过预编译形成可执行文件,再由系统执行该文件形成可识别的二进制文件 解释型语言 边执行边转换.源代码先 ...