layui的上傳視頻文件添加進度條


1.在表單上傳組件中,添加文件上傳的主鍵按鈕:

 

 2.選用文檔中的上傳文件進度的回調:

 

 我自己的代碼::::

(html代碼)

 <div class="layui-form-item">
                <label class="layui-form-label">視頻上傳</label>
                <button type="button" class="layui-btn" id="shipin_src">
                    <i class="layui-icon"></i>上傳視頻
                </button>
                <button type="button" class="layui-btn" id="uploadBtn">
                    開始上傳
                </button>
                <!--縮略預覽圖-->
                <input type="text" disabled name="src" value="" style="width:300px">    <span id="mv_m"></span>
                <div class="layui-progress layui-progress-big" lay-showPercent="yes" lay-filter="progressBar">
                    <div class="layui-progress-bar layui-bg-red" lay-percent="0%"></div>
                </div>
 </div>

  

(js代碼)

  //上傳視頻
        upload.render({
            elem: '#shipin_src' //綁定元素
            , url: '/admin/upload/ShiPinUpload' //上傳接口
            ,accept: 'video'
            ,auto:false
            ,bindAction:'#uploadBtn'
            , progress: function(value) {
                    console.log("進度:" + value + '%');
                    element.progress('progressBar',value + '%');
                },
                choose: function(obj) {
                    obj.preview(function(index, file, result) {
                        $('input[name="src"]').html(file.name);
                        // $('input[name="src"]').val(file.data['src']);
                    });
                }
            , done: function (res) {
                if (res.code>0) {
                    //上傳完畢回調
                    layer.msg(res.msg,{icon:2});
                    return false;
                }else {
                    //上傳完畢回調
                    $('#mv_m').html(res.data['sizem']+'M');
                    $('input[name="src"]').val(res.data['src']);
                    layer.msg("上傳成功!",{icon:1});
                }
            }
            , error: function () {
                //請求異常回調
            }
        });

  

差點忘記 一段添加在js之前的代碼:(一定要添加,這個是檢測的上傳進度)

      //創建監聽函數
        var xhrOnProgress = function (fun) {
            xhrOnProgress.onprogress = fun; //綁定監聽
            //使用閉包實現監聽綁
            return function () {
                //通過$.ajaxSettings.xhr();獲得XMLHttpRequest對象
                var xhr = $.ajaxSettings.xhr();
                //判斷監聽函數是否為函數
                if (typeof xhrOnProgress.onprogress !== 'function')
                    return xhr;
                //如果有監聽函數並且xhr對象支持綁定時就把監聽函數綁定上去
                if (xhrOnProgress.onprogress && xhr.upload) {
                    xhr.upload.onprogress = xhrOnProgress.onprogress;
                }
                return xhr;
            }
        }

  

 

3.PHP后台接收代碼:

  /**
     * 視頻文件上傳
     *
     *
     * */
    public function ShiPinUpload()
    {
        $file = request()->file('file'); //接收文件
        //判斷文件是否為空
        if($file == null){
            exit(json_encode(['code'=>1,'msg'=>'沒有視頻上傳!']));
        }
        //獲取上傳圖片大小
        $fileImgSize = $file->getInfo('size');
        $SizeM = $fileImgSize/1048576;
        //保存文件地址
        $info = $file->move('../public/mv_file');
        //替換文件的路徑,輸出路徑地址
        $img = str_replace('\\','/','/mv_file'.'/'.$info->getSaveName());
        exit(json_encode(['code'=>0,'data'=>['src'=>$img,'title'=>$info->getSaveName(),'sizem'=>$SizeM]]));
    }
}

  非常簡單!!!!!!

切記文件上傳功能,一定要在php.ini中定義最大上傳文件Size ;

如果出現大文件上傳失敗:請看下一篇文章---------解決服務器接受最大上傳上限

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM