layui 上传视频

html 

<div class="layui-form-item">
    <label class="layui-form-label">上传视频</label>
        <button type="button" class="layui-btn cover" id="control_video_button">上传视频</button>
        <button type="button" class="layui-btn layui-btn-danger cover" id="control_video_del" style="display: {$detail.control_video ? 'inline' : 'none'}">删除视频</button>
        <input type="hidden" id="control_video" value="{$detail.control_video}" name="control_video"/>
        <input type="hidden" id="temp_url_id" value="" name="temp_url_id"/>
</div>

 <div class="layui-form-item">
    <label class="layui-form-label"></label>
    <div class="layui-input-block">
        <video src="{$detail.control_video}" controls="controls" id="control_video_demo" style="width: 50%;display: {$detail.control_video ? 'block' : 'none'}">
                                您的浏览器不支持 video 标签。
        </video>
        <p id="demoText"></p>
    </div>
</div>

 js

layui.use(['upload','form'], function(){
    var form = layui.form
        ,$ = layui.jquery
        ,upload = layui.upload;

var uploadInst = upload.render({
                elem: '#control_video_button', //绑定元素
                url: "{:url('Upload/upload')}",//上传接口
                accept: 'video'
                ,before: function(obj){
                    //预读本地文件示例,不支持ie8
                    obj.preview(function(index, file, result){
                        $('#control_video_demo').attr('src', result); //图片链接(base64)
                        $('#control_video_demo').css('display','block');
                        $('#control_video_del').css('display','inline');
                    });
                },
                done: function(res){
                    console.log(res);

                    //如果上传失败
                    if(res.code != 1){
                        return layer.msg('上传失败');
                    }
                    //上传成功
                    document.getElementById("control_video").value = res.filename;
                    document.getElementById("temp_url_id").value = res.msg;

                },error: function(res){
                    console.log(res);
                    //演示失败状态,并实现重传
                    var demoText = $('#demoText');
                    demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
                    demoText.find('.demo-reload').on('click', function(){
                        uploadInst.upload();
                    });
                }
            });

            $('#control_video_del').click(function(){
                $('#control_video_demo').css('display','none');
                $('#control_video_del').css('display','none');
                $('#control_video').val('');
            })
});

效果

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在ThinkPHP5 (TP5) 框架结合Layui库进行文件上传时,处理视频文件通常会稍微复杂一些,因为视频文件通常比图片大得多。以下是使用TP5和Layui进行视频上传的基本步骤: 1. 引入依赖:首先,在项目中引入layui的表单组件和文件上传插件`layui.upload`。 ```html <script src="__STATIC__/layui/layui.js"></script> ``` 2. 配置上传规则:在前端HTML中设置一个表单,配置`layui.upload`的属性,例如设置允许上传的文件类型和最大大小。 ```html <form id="videoForm" lay-filter="uploadVideo"> <input type="hidden" name="token" value="<your-token>"> <input type="file" name="videoFile" lay-choose="layfiles" accept="video/*"> <button type="submit">上传</button> </form> <script> layui.use(['form', 'layer', 'upload'], function () { var form = layui.form(); }); </script> ``` 3. JavaScript处理:在layui.js文件加载完成后,初始化上传函数并监听表单提交事件。 ```javascript layui.upload({ url: '<your-api-url>', // 后端接收视频的URL field: 'videoFile', // 表单字段名 before: async function (obj, file) { /* 在这里添加文件验证和限制 */ if (!file.type.match('video/*')) { layer.msg('只支持上传视频文件'); return false; } // 检查文件大小 if (file.size > 10 * 1024 * 1024) { layer.msg('视频文件过大,请小于10MB'); return false; } }, done: function (res, file) { console.log(res); // 成功回调 // 这里可以将上传结果返回给服务器或显示给用户 } }, '#videoForm') ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值