15 06 2020

html

<div class="layui-form-item">
    <label class="layui-form-label red-star">图片</label>
    <div class="layui-input-block">
        <button type="button" class="layui-btn layui-btn-primary" id="upload">
            <i class="layui-icon"></i>上传图片
        </button>
        <input class="layui-upload-file" type="file" accept="image/*" name="file">
        <div id="uploadtips" class="uploadtips"></div>

        <div class="layui-form-mid layui-word-aux" style="display: inline-block; float: none;">
            首页图片大小:1920 x 500,内页:1920 x 350
        </div>
    </div>
    <div class="upload-preview"></div>
</div>

js

    layui.use(['jquery', 'form', 'table'], function () { //使用layui引入jq
        var $ = jQuery = layui.$,
           
            upload = layui.upload;

      
        //普通图片上传
        var uploadInst = upload.render({
            elem: '#upload',
            url: "/index/admin/bannerAddimg",
            type:"POST",
            size: 2048,
            acceptMime: 'image/*',
            before: function (obj) {
                layer.load(2);
            },
            done: function (res) {
                console.log(res);
                layer.closeAll('loading'); //关闭加载
                $('#uploadtips').html(''); //清空提示

                if (res.code) {
                    $('.upload-preview').html('<img src="' + res.url + '">');
                    $('input[name=litpic]').val(res.url);

                    return layer.msg(res.msg);
                } else {
                    return layer.msg(res.msg, {icon: 5, shift: 6, shade: [0.2, '#000']});
                }
                //上传成功
            },
            progress: function (e, percent) {
                $('#uploadtips').html(percent + '%');
            },
            error: function () {
                //失败状态,并实现重传
                layer.closeAll('loading');
                $('#uploadtips').html('<a class="layui-btn layui-btn-xs layui-btn-danger btn-reload">重试</a>');
                $('.btn-reload').on('click', function () {
                    uploadInst.upload();
                });
            }
        });


        //…
    });

php

public function img(Request $request)
{
    $file = $request->file('file');
    if (!empty($file)){
        //成功上传后 获取上传信息
        $info = $file->validate(['ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public'.DS.'uploads');
        if ($info){
            //获取图片的存放相对路径
            $filePath = '/uploads/'.$info->getSaveName();
            $filePath = str_replace('\\', '/', $filePath);
            //上传成功路径存入session
            Session::set('index_banners',$filePath);
        }else{
            // 上传失败获取错误信息
            $data['code'] = 0;
            $data['msg'] = $file->getError();
            return json($data);
        }
    }

    $data['code'] = 1;
    $data['url'] = $filePath;
    $data['msg'] = '保存成功';

    return json($data);

}


延伸阅读
  1. 用threejs展示stl格式3D模型
  2. table表格树状以及单元格编辑增删改查