Layui,SSM实现的头像上传

准备工作

1.导入文件上传的jar包

    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.3</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
    </dependency>

2、配置bean
注意!!!这个bena的id必须为:multipartResolver , 否则上传文件会报400的错误!

 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 设置上传文件的最大尺寸为10MB -->
        <property name="maxUploadSize">
            <value>10485760</value>
        </property>
        <!--设置编码,与jsp页面编码一致-->
        <property name="defaultEncoding">
            <value>UTF-8</value>
        </property>
    </bean>

3.使用layui文件上传样式

<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  <legend>常规使用:普通图片上传</legend>
</fieldset>
<div class="layui-upload">
    <button type="button" class="layui-btn" id="test1">上传图片</button>
    <div class="layui-upload-list">
        <img class="layui-upload-img" id="demo1">
        <p id="demoText"></p>
    </div>
</div>

JS代码

<script>
    layui.use('upload', function(){
        var $ = layui.jquery
            ,upload = layui.upload;

        //普通文件上传
        var uploadInst = upload.render({
            elem: '#test1'
            ,url: 'upload'
            ,before: function(obj){
                //预读本地文件示例,不支持ie8
                obj.preview(function(index, file, result){
                    $('#demo1').attr('src', result); //图片链接(base64)
                });
            }
            ,done: function(res){
                //如果上传失败
                if(res.code > 0){
                    return layer.msg('上传失败');
                }
                console.log(res);
                //上传成功
            }
            ,error: function(){
                //演示失败状态,并实现重传
                var demoText = $('#demoText');
                demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
                demoText.find('.demo-reload').on('click', function(){
                    uploadInst.upload();
                });
            }
        });
    });
</script>

4.设置上传文件的Controller
这里采用file.Transto 来保存上传的文件

 //资源上传
    @RequestMapping(value="upload",method= RequestMethod.POST,produces="application/json;charset=utf-8")
    @ResponseBody
    public Map<String, Object> uploadResource(HttpServletRequest request, HttpServletResponse response, HttpSession session, MultipartFile file) throws Exception{
        //上传路径保存设置
        String path = request.getServletContext().getRealPath("/upload/yc");
        System.out.println(path);
       //获取上传的文件名
        /*String fileName = file.getOriginalFilename();
        System.out.println(fileName);*/
        //这里设置每个用户头像img只有一个
        String fileName="tou.jpg";
        File dir = new File(path,fileName);
        if(!dir.exists()){
            dir.mkdirs();
        }
        //MultipartFile自带的解析方法
        file.transferTo(dir);
        //upload要求返回的数据格式
        Map<String, Object> uploadData = new HashMap<String, Object>();
        Map<String, Object> data = new HashMap<String, Object>();
        uploadData.put("code", "0");
        uploadData.put("msg", "ok");
        //将文件路径返回
        data.put("src", dir.getPath());
        uploadData.put("data", data);
        return uploadData;
    }
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
LayUI SSM项目源码是基于LayUI前端框架和SSM后端框架开发的一个项目的源代码。LayUI一个轻量级的前端框架,提供了丰富的UI组件和简洁的编码方式,使得开发者可以快速地构建漂亮、易用的界面。SSM一个JavaWeb开发框架,由SpringMVC、Spring和MyBatis三个框架组成,它们的结合使得开发者可以更加方便地进行后端业务逻辑的开发和管理。 LayUI SSM项目源码通常包含了前端页面、后端Java代码和数据库SQL语句等内容。前端页面主要使用LayUI提供的UI组件进行布局和展示,包括表格、表单、弹出框、下拉框等。后端Java代码则是通过SSM框架来处理前端请求,包括接收请求、处理业务逻辑和返回响应等。数据库SQL语句则用于创建和管理数据库表,以及对数据进行增删改查等操作。 LayUI SSM项目源码的具体功能和特点可以根据项目需求而有所差异,常见的功能包括用户登录和注册、数据的增删改查、数据的分页查询和排序、文件上传和下载等。此外,源码中还可能包含一些其他的功能模块,比如权限管理、日志记录、缓存操作等,以满足项目的具体需求。 开发者可以通过学习和使用LayUI SSM项目源码,了解和掌握LayUISSM的使用方法和开发思路,从而加快自己的项目开发速度。同时,也可以根据自己的需求对源码进行修改和扩展,以实现定制化的功能和界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值