1. 程式人生 > >tp5使用layui非同步上傳圖片

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' => '']);
        }

    }

最好效果就是這樣:
在這裡插入圖片描述