一、你得有个layui框架的js包
layui框架地址为:https://www.layui.com/doc/
当然如果想使用我的情到这里下载,里面我做了一些修改,体验好一点吧:链接:https://pan.baidu.com/s/1Egb5lPW1d6ocUDW9BAsZOg
提取码:sdou
二、然后建立个html文本吧:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>测试</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> <link rel="stylesheet" href="./layui/css/layui.css"> <style> .content-div { width: 90%; position: absolute; margin: 25px } /*.invisible {visibility:hidden}*/ /*.visible {visibility:visible}*/ .inhidden { display: none } .visible { display: block } </style> </head> <body> <div class="content-div"> <form class="layui-form"> <!-- 提示:如果你不想用form,你可以换成div等任何一个普通元素 --> <div class="layui-form-item"> <div class="layui-input-block"> <div class="layui-upload-drag" id="selectFile"> <i class="layui-icon"></i> <p>点击上传,或将文件拖拽到此处</p> </div> <button type="button" class="layui-btn inhidden" id="uploadBtn">上传视频</button> </div> </div> <video id="videoattr" width="250" height="100" style="margin-left: 80px;" class="inhidden"></video> <div class="layui-form-item layui-form-text inhidden" id="progressDiv"> <label class="layui-form-label">上传进度</label> <div class="layui-input-block" style="padding-top: 18px"> <div class="layui-progress" lay-showPercent="yes" lay-filter="progressBar"> <div class="layui-progress-bar" lay-percent="0%"></div> </div> <div class="layui-form-mid layui-word-aux inhidden" id="notice" style="color: red !important;">上传成功</div> </div> </div> <div class="layui-form-item inhidden"> <div class="layui-input-block"> <input type="text" name="height" id="videoHeight" class="layui-input"> <input type="text" name="width" id="videoWidth"> <input type="text" name="playTime" id="playTime"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="*" id="submitForm">立即提交</button> </div> </div> </form> </div> <script src="./layui/layui.js"></script> <script src="./js/jquery-3.2.0.js"></script> <script> layui.use(['form', 'upload', 'layer', 'element'], function () { var form = layui.form , $ = layui.jquery , layer = layui.layer , element = layui.element , upload = layui.upload; //拖拽上传 var flag = false; upload.render({ elem: '#selectFile' , url: '/upload_file' , accept: 'video' , exts: 'mp4' , method: 'post' , auto: false , bindAction: '#uploadBtn' //指向一个按钮触发上传 , progress: function (e, percent) { element.progress('progressBar', percent + '%'); } , choose: function (obj) { var load=layer.load(2, { shade: [0.4, '#393D49'] }) obj.preview(function (index, file, res) { if (file.size > 0) {// 判断文件大小 flag = true; layer.alert("Wait for me to disappear, forget I can be good");// 此段话,用来拖延用户点击提交按钮的时间,因为不知道covers是否返回 } var url = URL.createObjectURL(file);//把file转成URL $('#videoattr').attr('src', url); //视频链接 var timer = setTimeout(function () { layer.close(load); $('#uploadBtn').removeClass('inhidden'); //一开始先将确认上传按钮隐藏,得到视频时长后才开放 $('#videoattr').removeClass('inhidden'); $('#progressDiv').removeClass('inhidden'); clearTimeout(timer); }, 1000); // console.log(url); }) } , before: function (obj) { var video_time = document.getElementById("videoattr").duration;//视频时长 var time_length = Math.ceil(video_time);//转为整型 var videoHeight = document.getElementById("videoattr").videoHeight; var videoWidth = document.getElementById("videoattr").videoWidth; // this.data = {videoHeight:videoHeight,videoWidth:videoWidth,time_length: time_length};//动态改变传的参数 $('#videoHeight').val(videoHeight); $('#videoWidth').val(videoWidth); $('#playTime').val(time_length); } , done: function (res) { if (res.code > 0) { layer.msg("上传失败", {icon: 5}) } else { $('#notice').removeClass('inhidden') // $('#uploadBtn').addClass('invisible'); } console.log(res) } }); }); </script> </body> </html>