使用SSM框架实现图片的上传

该博客介绍了如何使用Spring、SpringMVC和MyBatis(SSM)框架实现前端图片上传功能。前端通过input标签的file类型获取图片,后端通过UUID生成唯一文件名,并保存到指定路径。同时,将图片的相对路径存储到数据库中,确保图片上传和展示的正常进行。
摘要由CSDN通过智能技术生成

SSM实现图片上传功能

效果

在前端页面点击上传图片功能按钮,即弹出文件管理器,选择图片并上传;

思路

  1. 在前端页面添加 input 标签,type选择file。
  2. 在后端controller编写方法。
  3. 方法体:
    • 定义一个文件保存的相对路径,本地运行的项目就定义本地路径,服务器项目就定义服务器路径。
    • 定义文件名。
    • 生成uuid作为文件名称、获得文件类型、文件名后缀、最后得到文件名、生成文件保存路径。
    • 把图片的相对路径写入数据库中。

前端代码

<form class="layui-form " action="${pageContext.request.contextPath}/home/add"  enctype="multipart/form-data" method="post" onsubmit="return sumbit_sure()" >
    
    <div class="layui-form-item">
        <label class="layui-form-label">图片</label>
        <div class="layui-input-inline">
            <input type="file" name="file" >
        </div>
    </div>

    <div class="layui-form-item">
        <div class="layui-input-block">
            <button class="layui-btn" type="submit">立即提交</button>
        </div>
    </div>
    
</form>

注意 !enctype="multipart/form-data" method="post" οnsubmit="return sumbit_sure()" 必须填写

后端代码

@RequestMapping("/add")
public String add(Home home, Model model) throws IOException{

        String sqlPath = null;
        //定义文件保存的本地路径
        String localPath="E:\酒店后台管理系统\程序\upload";
        //定义 文件名
        String filename=null;
        if(!home.getFile().isEmpty()){
            //生成uuid作为文件名称
            String uuid = UUID.randomUUID().toString().replaceAll("-","");
            //获得文件类型(可以判断如果不是图片,禁止上传)
            String contentType=home.getFile().getContentType();
            //获得文件后缀名
            String suffixName=contentType.substring(contentType.indexOf("/")+1);
            //得到 文件名
            filename=uuid+"."+suffixName;
            System.out.println(filename);
            //文件保存路径
            home.getFile().transferTo(new File(localPath+filename));
        }
        //把图片的相对路径保存至数据库
        sqlPath = "/upload/"+filename;
        System.out.println(sqlPath);
        home.setImg(sqlPath);
		
        homeService.addHome(home);
        model.addAttribute("home",home);
        return "home_show";
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿鹏同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值