• 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="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 ;

    如果出现大文件上传失败:请看下一篇文章---------解决服务器接受最大上传上限

  • 相关阅读:
    [ZJOI2019]开关
    ABC245 Ex Product Modulo 2
    [SDOI2017]天才黑客
    ABC240G Teleporting Takahashi
    ABC240 Ex Sequence of Substrings
    ABC241H Card Deck Score
    mysql报错1055 only_full_group_by解决办法
    docker删除镜像Error response from daemon: conflict: unable to remove repository reference
    Docker服务启动报错:Job for docker.service failed because the control process exited with error
    bash: ifconfig: 未找到命令 解决方案
  • 原文地址:https://www.cnblogs.com/web928943/p/13985198.html
Copyright © 2020-2023  润新知