Springboot怎么实现图片上传

这篇具有很好参考价值的文章主要介绍了Springboot怎么实现图片上传。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.首先图片上传,需要在数据库定义一个varchar类型的img字段图片字段springboot 图片上传,mysql,spring boot

 2.需要在pom文件加图片上传的配置文件

 

        <!--上传图片-->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

3.在yml里添加限制图片大小

#配置mysql的连接
spring:
  #图片上传
  servlet:
    multipart:
      enabled: true
      max-file-size: 50MB
      max-request-size: 50MB

4.html页面定义div

    <div class="form-group">
        <label  class="col-sm-2 control-label">图片</label>
        <div class="col-sm-10">
            <input name="goodsImg" id="testimg">
            <!-- imgfile  是上传图片的参数  类型是 MultipartFile 文件类型
                     imgfile 必须和后台 上传图片的方法 uploadImg  参数保持一致 -->
            <input type="file" multiple class="projectfile" accept="image/*" name="imgfile" id="goodsImg">
        </div>
    </div>

js中定义函数 图片上传

<script>
    //上传图片
    function uploadImg(url){
        $('#goodsImg').fileinput({
            initialPreview:url,
            //初始化图片配置:
            initialPreviewConfig: [
                {key: 1, showDelete: false}
            ],
            //是否初始化图片显示
            initialPreviewAsData: true,
            language: 'zh', //设置语言
            uploadUrl: '/user/uploadImg', //上传的地址
            allowedFileExtensions: ['jpg', 'gif', 'png'],//接收的文件后缀
            showUpload: true, //是否显示上传按钮
            showCaption: false,//是否显示标题
            browseClass: "btn btn-primary", //按钮样式
            maxFileCount: 2, //表示允许同时上传的最大文件个数
            enctype: 'multipart/form-data',
            validateInitialCount:true,
            previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
            msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
        }).on('fileuploaded', function(event, data, previewId, index) {
            alert(data.response.path);//http
            //http://localhost:8080/ssm_bootstrap/upload/1279fabb-5515-44e2-84e8-4a7dd79cc08c.JPG
            var	imgval = "http://"+ location.host+"/"+data.response.path;
            $('#testimg').val(imgval);
        });
    }
</script>

5.图片上传工具类

public class FileUtil {

	//上传
	/**
	 * <pre>uploadFile(上传)   
	 * 创建人:wrx
	 * 创建时间:2023年3月29日 下午3:21:17    
	 * 修改人:ba
	 * 修改时间:2023年3月29日 下午3:21:17    
	 * 修改备注: 
	 * @param imgfile
	 * @param request
	 * @return</pre>
	 */
	public static String uploadFile(MultipartFile imgfile,HttpServletRequest request){
    	//1、上传路径:项目发布tomcat服务器
		//D:\workUtilsInstall\apache-tomcat-8.0.0\webapps\week_employee_hzy\\upload
		String path = request.getServletContext().getRealPath("/")+"/upload";
		File file = new File(path);
		if(!file.exists()){//不存在
			file.mkdirs();
		}
		
		//生成新的文件名称,原因:防止文件名称一样后者上传的文件会覆盖前者上传的文件(前提是文件名称必须一样并且在用一个目录下)
		//生成新的文件名称,保证文件名称唯一有两种方法:
		// 	  1.通过UUID实现文件名称唯一 (UUID会生成32位字母+数字唯一的一个字符串)
		//	  2.通过时间戳现文件名称唯一  (时间戳是毫秒级时间 时间会一直往上加,生成13位数字)注意只有java生成13位 其他则是10位比如oracle、mysql、php
		//  获取时间戳
		//long currentTimeMillis = System.currentTimeMillis();
		//System.out.println(currentTimeMillis);
		String uuid = UUID.randomUUID().toString();
		String oldName = imgfile.getOriginalFilename();//1.jpg
		String suffix = oldName.substring(oldName.lastIndexOf("."));
		String newFile = uuid+suffix;
		File file2 = new File(path+"\\"+newFile);
		try {
			imgfile.transferTo(file2);
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return "upload/"+newFile;
	}
	
}

6.Controller层调用图片上传方法

/**
     *
     *调用图片上传工具类
     * @param imgfile
     * @param request
     * @return java.lang.String
     * @author wrx
     * @date 2023/5/17 0017 16:00
     */
    @RequestMapping("uploadImg")
    public String uploadImg(MultipartFile imgfile, HttpServletRequest request){
        String filePath = FileUtil.uploadFile(imgfile, request);
        System.out.println("{\"path\":\"" + filePath + "\"}");
        return "{\"path\":\"" + filePath + "\"}";//可以
    }

springboot 图片上传,mysql,spring boot

 

访问这个路径http://localhost:8080/upload/b54e356b-6dba-48ae-8ea1-27b4dad158b5.png

访问成功图片上传就完成了 

springboot 图片上传,mysql,spring boot文章来源地址https://www.toymoban.com/news/detail-515847.html

到了这里,关于Springboot怎么实现图片上传的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前后端的那些事】15min快速实现图片上传,预览功能(ElementPlus+Springboot)

    前言 :最近写项目,发现了一些很有意思的功能,想写文章,录视频把这些内容记录下。但这些功能太零碎,如果为每个功能都单独搭建一个项目,这明显不合适。于是我想,就搭建一个项目,把那些我想将的小功能全部整合到一起。实现 搭一次环境 ,处处使用。 本文主要

    2024年01月19日
    浏览(36)
  • 7.2 SpringBoot实现上传图片API + url映射本地路径registry.addResourceHandler

    在图书借阅系统里,有很多图片需要前端展示,这些图片大都是由用户上传,保存在服务端,所以服务端需要提供 上传和访问图片 。 基本要求 :前端直接访问网络图片url 就可以打开图片,不用下载,更不用base64转码! 实现方式 : Tomcat

    2024年02月10日
    浏览(37)
  • Springboot + MySQL + html 实现文件的上传、存储、下载、删除

    实现步骤及效果呈现如下: 1.创建数据库表: 表名:file_test 存储后的数据: 2.创建数据库表对应映射的实体类: import com.baomidou.mybatisplus.annotation.IdType ; import com.baomidou.mybatisplus.annotation. TableField ; import com.baomidou.mybatisplus.annotation. TableId ; import com.baomidou.mybatisplus.annotation. Tab

    2024年04月29日
    浏览(29)
  • SpringBoot3 + uniapp 对接 阿里云0SS 实现上传图片视频到 0SS 以及 0SS 里删除图片视频的操作(最新)

    UpLoadFile.vue deleteOssFile.js http.js FileUploadController.java AliOssUtil.java

    2024年04月14日
    浏览(32)
  • SpringBoot项目上传图片(本地/OSS)

    可参考视频: 【springboot上传图片的两种方式详解(本地/OSS对象存储)】 https://www.bilibili.com/video/BV1TK411Z7ad/?share_source=copy_webvd_source=7f0416c71bcbaf44e08ad58367e3f198 视频前十分钟是从0开始编写图片保存到本地,可以照着视频敲出来,不想看也可以直接复制我下面的代码 在 Resources 目

    2023年04月14日
    浏览(34)
  • SpringBoot+ruoyi框架图片上传和文件下载

    第一次接触ruoyi框架,碰到文件上传和下载问题,今天来总结一下。 使用若依框架文件上传下载首先配置文件路径要配好。 application.yml若依配置 首先是文件下载,在若依框架下载上传文件工具已经写好了 页面: 前端方法:` 后端通用方法: RuoYiConfig.getDownloadPath()如果和你的路

    2024年02月09日
    浏览(33)
  • 使用SpringBoot将图片上传至阿里云OSS

    1. 什么是OSS? 官方的解释是这样的:阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。 官网:对象存储OSS 2. 为什么要使用OSS? 作者认为主要是方便项目上线后的文件业务的处

    2024年02月06日
    浏览(29)
  • vue+springboot 上传文件、图片、视频,回显到前端。

    预览: 视频: 分成两部,1.通过前端将文件的基本信息传送到后端进行储存,返回已储存的文件id,2.再将文件发送到后端储存。 储存文件信息 上传文件对象 这个我放在d盘下面,需要修改映射路径

    2023年04月19日
    浏览(46)
  • 【SpringBoot】简单的文件上传和文件下载以及图片回显

    介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力? 我见过最好的答案就是:因为我喜欢的东西都很贵,

    2024年01月15日
    浏览(33)
  • SpringBoot项目中前后端对图片的上传与接收操作

    在一个在线图片分享系统中,前端使用JS+jQuery,后端使用Maven管理项目,采用分层次目录结构(Controller、Service、Mapper等)的一个Java语言编写的SSM(Spring+SpringBoot+Mybatis)项目中,需要实现一个前端标签上传图片,后端Controller层接收并处理图片。 上传图片的方式有很多,可以

    2024年02月09日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包