layui文件上传+ThinkPHP
1 1.前端html代码 2 <div class="layui-form-item"> 3 <label class="layui-form-label">修改头像</label> 4 <div class="layui-input-inline uploadHeadImage"> 5 <div class="layui-upload-drag" id="headImg"> 6 <i class="layui-icon"></i> 7 <p>点击上传图片,或将图片拖拽到此处</p> 8 </div> 9 </div> 10 <div class="layui-input-inline"> 11 <div class="layui-upload-list"> 12 <img class="layui-upload-img headImage" src="" id="demo1"> 13 <p id="demoText"></p> 14 </div> 15 </div> 16 </div> 17 18 19 2.前端js代码 20 <script>layui.use(['form', 'layer','upload',"element"], 21 function() { 22 $ = layui.jquery; 23 var form = layui.form, 24 upload = layui.upload, 25 layer = layui.layer; 26 //拖拽上传 27 var uploadInst = upload.render({ 28 elem: '#headImg' 29 , url: '{:url("uploadImg")}' 30 , size: 500 31 , before: function (obj) { 32 //预读本地文件示例,不支持ie8 33 obj.preview(function (index, file, result) { 34 $('#demo1').attr('src', result); //图片链接(base64) 35 }); 36 } 37 , done: function (res) { 38 console.log(res); 39 //如果上传失败 40 if (res.code > 0) { 41 return layer.msg('上传失败'); 42 } 43 var demoText = $('#demoText'); 44 // demoText.html('<span style="color: #8f8f8f;">上传成功!!!</span>'); 45 $("#imagepath").val(res.image) 46 layer.msg("上传成功") 47 } 48 , error: function () { 49 //演示失败状态,并实现重传 50 var demoText = $('#demoText'); 51 demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>'); 52 demoText.find('.demo-reload').on('click', function () { 53 uploadInst.upload(); 54 }); 55 } 56 }); 57 element.init(); 58 });
1 3.后台php代码 2 // 图片上传 3 public function uploadImg(){ 4 // 上传代码 5 $file = request()->file('file'); 6 // 上传到本地服务器 7 $savename = \think\facade\Filesystem::disk('public')->putFile( 'goods', $file); 8 $data['image'] = $savename; 9 $data['code'] = 0; 10 11 return json($data); 12 }