springboot使用Layer上传图片

1.html

<button style="margin-top: 20px;margin-left: 20px" type="button" class="layui-btn" id="upload">
    <i class="layui-icon">&#xe67c;</i>上传封面图
</button>

2.js

layui.use('upload', function () {
    var $ = layui.jquery
        , upload = layui.upload;
    //普通图片上传
    var uploadInst = upload.render({
        elem: '#upload'
        , url: '/admin/upload_img'
        , choose: function (obj) {
            //预览本地文件示例
            obj.preview(function (index, file, result) {
                // console.log(result);
                $('#picture').attr('src', result).attr('width', '80px').attr('hight', '80px');
            });
        }
        , data: {}
        , size: 1024 //限制文件大小,单位 KB
        , auto: true //自动上传   如果需要绑定上传  则需要设置为false
        //,multiple: true  //多文件
        // , bindAction: '#update'  //绑定上传按钮
        , done: function (res) {
            //console.log(res);
            if (res.code == 1) {
                //上传成功
                layer.msg('上传成功,请勿刷新页面');
                imgid = res.data.src;
            } else {
                return layer.msg('上传失败');
            }
        }
    })
});

3.后台逻辑

@RequestMapping("/upload_img")
public @ResponseBody
String uploadImg(@RequestParam("file") MultipartFile file,HttpServletResponse response) {
        response.setHeader("Access-Control-Allow-Origin", "*");
        return articleService.uploadImg(file);
}
public String uploadImg(MultipartFile file) {
        String str = "";
        if (null != file) {

                //生成uuid作为文件名称
                String uuid = UUID.randomUUID().toString().replaceAll("-", "");
                System.out.println("文件名称:" + uuid);
                //获得文件类型(判断如果不是图片文件类型,则禁止上传)
                String contentType = file.getContentType();
                System.out.println("文件类型:" + contentType);
                //获得文件后缀名称
                String imageName = contentType.substring(contentType.indexOf("/") + 1);
                System.out.println("文件后缀名称:" + imageName);
                String filePath = UPLOAD_FILE_PATH;

                //如果不存在,则创建新文件夹
                File f = new File(filePath);
                if (!f.exists()) {
                        f.mkdirs();
                }
                //新生成的文件名称
                String fileName = uuid + "." + imageName;
                System.out.println("新生成的文件名称:" + fileName);
                //图片保存的完整路径
                String pathName = filePath + "/img/" + fileName;
                System.out.println(pathName);
                //复制操作
                //将图片从源位置复制到目标位置
                try {
                        file.transferTo(new File(pathName));
                } catch (IOException e) {
                        e.printStackTrace();
                }
                str = "{\"code\": 1,\"msg\": \"success\",\"data\": {\"src\":\"/img/" + fileName + "\"}}";

        } else {
                System.out.println("文件为空");
        }
        return str;
}

转载于:https://my.oschina.net/u/4100033/blog/3042681

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值