基于layui社区模板编辑器,增加视频音频上传功能发布

此功能 展示 请查看  http://fly.layui.com/jie/8077.html  

具体实现代码如下:
1、查找官方 demo/res/mods/index.js 

超找代码
<span type="code" title="插入代码"><i class="iconfont icon-daima"></i>代码</span>
下面插入
 +'<span type="video" title="视频"><i class="layui-icon"></i>视频</span>'
 +'<span type="audio" title="音频"><i class="layui-icon"></i>音频</span>'
 

查找代码

,yulan: function(editor){ //预览


上面添加以下代码;
,video: function(editor){ //插入视频
          layer.open({
            type: 1
            ,id: 'fly-jie-video-upload'
            ,title: '插入视频'
            ,shade: false
            ,area: '465px'
            ,skin: 'layui-layer-border'
            ,content: ['<ul class="layui-form layui-form-pane" style="margin: 20px;">'
              ,'<li class="layui-form-item">'
              ,'<label class="layui-form-label">封面</label>'
              ,'<div class="layui-input-inline">'
              ,'<input type="text" required name="cover" placeholder="支持直接粘贴远程图片地址" value="" class="layui-input">'
              ,'</div>'
              ,'<input required type="file" name="file" lay-type="image" class="layui-upload-file" value="">'
              ,'</li>'
              ,'<li class="layui-form-item">'
              ,'<label class="layui-form-label">URL</label>'
              ,'<div class="layui-input-inline">'
              ,'<input type="text" required name="video" placeholder="支持直接粘贴远程视频地址" value="" class="layui-input">'
              ,'</div>'
              ,'<input required type="file" name="file" lay-type="video" class="layui-upload-file" value="">'
              ,'</li>'
              ,'<li class="layui-form-item" style="text-align: center;">'
              ,'<button type="button" lay-submit lay-filter="uploadImages" class="layui-btn">确认</button>'
              ,'</li>'
              ,'</ul>'].join('')
            ,success: function(layero, index){
              var loding, video =  layero.find('input[name="video"]'), cover =  layero.find('input[name="cover"]');
              layui.upload({
                url: '/Ajax/ThreadUpload/'
                ,before: function(input){   loding = layer.msg('文件上传中,请稍等哦', { icon: 16 ,shade:0.3,time:0 });   }
                ,elem: '#fly-jie-video-upload .layui-upload-file'
                ,success: function(res,input){
                  layer.close(loding);
                  if(res.status == 1){
                      if($(input).attr('lay-type') == 'image'){
                          cover.val(res.data);
                      }else{
                          video.val(res.data);
                      }
                  } else {
                    layer.msg(res.msg, {icon: 5});
                  }
                }
              });
              form.on('submit(uploadImages)', function(data){
                var field = data.field;
                if(!field.video) return video.focus();
                layui.focusInsert(editor[0], 'video('+field.cover+')['+ field.video + '] ');
                layer.close(index);
              });
            }
          });
        }
        ,audio: function(editor){ //插入音频
          layer.open({
            type: 1
            ,id: 'fly-jie-audio-upload'
            ,title: '插入音频'
            ,shade: false
            ,area: '465px'
            ,skin: 'layui-layer-border'
            ,content: ['<ul class="layui-form layui-form-pane" style="margin: 20px;">'
              ,'<li class="layui-form-item">'
              ,'<label class="layui-form-label">URL</label>'
              ,'<div class="layui-input-inline">'
              ,'<input required name="audio" placeholder="支持直接粘贴远程音频地址" value="" class="layui-input">'
              ,'</div>'
              ,'<input required type="file" name="file" lay-type="audio" class="layui-upload-file" value="">'
              ,'</li>'
              ,'<li class="layui-form-item" style="text-align: center;">'
              ,'<button type="button" lay-submit lay-filter="uploadImages" class="layui-btn">确认</button>'
              ,'</li>'
              ,'</ul>'].join('')
            ,success: function(layero, index){
              var loding,image =  layero.find('input[name="audio"]');

              layui.upload({
                url: '/Ajax/ThreadUpload/',elem: '#fly-jie-audio-upload .layui-upload-file'
                ,before: function(input){   loding = layer.msg('文件上传中,请稍等哦', { icon: 16 ,shade:0.3,time:0 });   }
                ,success: function(res){
                  layer.close(loding);
                  if(res.status == 1){
                    image.val(res.data);
                  } else {
                    layer.msg(res.msg, {icon: 5});
                  }
                }
              });
              form.on('submit(uploadImages)', function(data){
                var field = data.field;
                if(!field.audio) return image.focus();
                layui.focusInsert(editor[0], 'audio['+ field.audio + '] ');
                layer.close(index);
              });
            }
          });
        }
其中 /Ajax/ThreadUpload/ 为上传地址,后台接受自己去处理保存图片;

下面开始处理内容转移工作;
查找
 
注意以上图片 我是增加了几个回车,注意分割的时候的 .replace 前面回车, 注意前面的 点 ;
在回车出添加以下代码:
 .replace(/video\(.*?\)\[([^\s]+?)\]/g, function(str){
              var cover = (str.match(/video\(([\s\S]+?)\)\[/)||[])[1];
              var video = (str.match(/\)\[([^\s]+?)\]/)||[])[1];
              cover = cover ? cover : '/Public/Topic/images/video_cover.jpg';
              return  '<video poster="'+ cover + '" controls crossorigin><source src="'+ video + '" type="video/mp4"></video>';
          })
          .replace(/audio\[([^\s]+?)\]/g, function(audio){
            return  '<audio controls><source src="'+ audio.replace(/(^audio\[)|(\]$)/g, '')+ '" type="audio/mp3"></audio>';
          })
查找
//加载编辑器
  gather.layEditor({
    elem: '.fly-editor'
  });
下面添加

  layui.use('plyr', function(plyr){
    plyr.setup();
  });
在有编辑器的页面 头部 引入 css 样式文件;
 


另外付一个 附件 请自行去我百度云盘系在(css 和 js) ;
链接:http://pan.baidu.com/s/1jHGqHDk 密码:sfdw

js 文件放入 demo/res/mods 中;与 index.js 同级目录;

css 文件放入 demo/res/css 中 html 头部 引入即可;



技术帮助:



Layui 是一个经典的前端UI框架,它提供了包括富文本编辑器在内的多种模块。Layui的富文本编辑器可以增加表格插入功能,让用户在编辑器中方便地创建和管理表格。 在Layui富文本编辑器增加表格功能,通常需要使用编辑器提供的API来实现。具体步骤如下: 1. 引入Layui的富文本编辑器模块。在你的HTML页面中,通过`<script>`标签引入Layui的CSS文件和JavaScript文件,并初始化富文本编辑器。 2. 加载编辑器的默认配置,你可以根据自己的需求来修改这些配置。例如,如果你想要添加一个按钮来快速插入表格,你可能需要配置工具栏(toolbar)中包含表格插入的按钮。 3. 使用编辑器提供的API,如`layer.tabledrag`来添加表格拖拽排序的功能,或者使用`layer.load`来在插入表格时显示加载动画。 4. 调用编辑器的实例方法,如`edit.execCommand('inserttable', rows, cols)`,来在编辑器中插入指定行数和列数的表格。 下面是一个简单的代码示例,展示如何在Layui富文本编辑器增加插入表格的功能: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Layui富文本编辑器增加表格功能</title> <link rel="stylesheet" href="path/to/layui/css/layui.css" media="all"> </head> <body> <div id="editor-container"></div> <script src="path/to/layui/layui.js"></script> <script> layui.use('layedit', function(){ var layedit = layui.layedit; // 初始化编辑器 layedit.use(['upload', 'table'], function(layedit, upload, table){ // 配置编辑器 layedit.full({ elem: '#editor-container', // 容器 toolbar: true, // 是否显示工具栏 upload: { // 上传图片配置 url: '/upload.php' // 服务器上传接口 }, table: { // 表格配置 width: '100%' // 表格宽度 }, done: function(bin, editor){ console.log(bin) }, error: function(err){ console.log(err) } }); }); }); </script> </body> </html> ``` 在这个示例中,`layedit.full`初始化了富文本编辑器,并且通过`toolbar: true`开启了工具栏,`table`属性设置了表格的一些基本配置。根据实际需求,你可以添加更多的配置项和工具栏按钮。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值