tp5使用layui异步上传图片

上传文件任何地方都要用到,这篇文章介绍使用layui异步上传图片。

1.视图代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传插件</title>
    <link href="/static/layui/css/layui.css" rel="stylesheet">
</head>
<body>

    <div class="layui-upload">
        <button type="button" class="layui-btn" id="cover">上传封面</button>
    </div>
    <div class="layui-input-inline">
        <img id="preview" width="200px" height="200px">
    </div>

<script src="/static/layui/layui.js"></script>
<script>
    layui.use('upload', function() {
        var upload = layui.upload;
        var $ = layui.jquery;
        var uploadInst = upload.render({
            elem:'#cover'
            ,url:'doUpload'
            ,accept:'file'  // 允许上传的文件类型
            ,auto:true // 自动上传
            ,before:function (obj) {
                console.log(obj);
                // 预览
                obj.preview(function(index,file,result) {
                    // console.log(file.name);    //图片名字
                    // console.log(file.type);    //图片格式
                    // console.log(file.size);    //图片大小
                    // console.log(result);       //图片地址
                    $('#preview').attr('src',result); //图片链接 base64
                });
                // layer.load();
            }
            // 上传成功回调
            ,done:function(res) {
                // console.log(upload);
                // console.log(res);
                if (res.code == 0) {
                    return layer.msg(res.msg);
                }
                return layer.msg(res.msg);
            }
            // 上传失败回调
            ,error:function(index,upload) {
                return layer.msg(res.msg);
            }

        });
    });
</script>
</body>
</html>

2.控制器代码

   // 显示上传页面
    public function upload()
    {
        return view();
    }
    
    //开始上传
    public function doUpload()
    {
        $img = request()->file('file');
        // 移动到框架应用根目录/public/uploads/ 目录下
        $info = $img->move(ROOT_PATH . 'public' . DS . 'layer_uploads');
        if($info){
            // 成功上传后 获取上传信息
            return json(['code' => 0, 'msg' => '上传成功!', 'url' => '/layer_uploads/' . $info->getSaveName()]);
        }else{
            // 上传失败获取错误信息
            return json(['code' => 1, 'msg' => $img->getError(), 'url' => '']);
        }

    }

最好效果就是这样:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35311094/article/details/86001718