当前位置: 首页 > news >正文

百度富文本编辑器ueditor支持上传mp3格式等音频文件的方法

百度富文本编辑器ueditor算得上比较强大的了,但是有一个比较令人难受的问题,就是不支持本地上传音频文件。ueditor自带的mp3功能是直接在百度音乐里面搜索加进去的,显而易见这个不是我们想要的,我们需要能够上传自制的MP3音频格式的文件。那么如何实现呐,下面介绍一种方法:

分析

其实ueditor的视频上传功能是可以上传音频文件的,只是在加入到编辑器里面的时候,html结构不正确而已。所以,我们可以根据这个思路去找解决的方法。

效果图

先po一下效果图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实现

第一步:选择配置文件

在页面加载百度富文本编辑器配置文件的时候,选择ueditor.all.js。压缩版的修改起来比较麻烦,修改完成之后,可以自行的添加到ueditor.all.min.js压缩版里。

第二步:找到要修改的代码

打开ueditor.all.js文件,大约在17644行,找到函数creatInsertStr(),函数creatInsertStr()就是处理点击加入到ueditor里的方法。

源代码如下:

function creatInsertStr(url,width,height,id,align,classname,type){
    //...省略其他代码  
    case 'video':
		var ext = url.substr(url.lastIndexOf('.') + 1);
		if(ext == 'ogv') ext = 'ogg';
		str = '<video' + (id ? ' id="' + id + '"' : '') + ' class="' + classname + ' video-js" ' + (align ? ' style="float:' + align + '"': '') +
		    ' controls preload="none" width="' + width + '" height="' + height + '" src="' + url + '" data-setup="{}">' +
		    '<source src="' + url + '" type="video/' + ext + '" /></video>';
		break;
}

在这里插入图片描述

第三步:修改代码,将case 'video’里面代码修改为:
case 'video':
  var ext = url.substr(url.lastIndexOf('.') + 1);
    if(ext == 'ogv') ext = 'ogg';
    if(ext == 'mp3' || ext == 'wav'){
      str = '<audio' + (id ? ' id="' + id + '"' : '') + ' class=" audio-js" ' + (align ? ' style="float:' + align + '"': '') +
          ' controls preload="none" width="' + width + '" height="' + height + '" src="' + url + '">" /></audio>';
    }else{
        str = '<video' + (id ? ' id="' + id + '"' : '') + ' class="' + classname + ' video-js" ' + (align ? ' style="float:' + align + '"': '') +
            ' controls preload="none" width="' + width + '" height="' + height + '" src="' + url + '" data-setup="{}">' +
            '<source src="' + url + '" type="video/' + ext + '" /></video>';
    }
    break;

在这里插入图片描述
通过上面的步骤可以很轻松的解决了百度富文本编辑器不能上传音频文件的问题,单音频,多音频上传都可以实现,虽然解决的方案不是很完美,但是可以满足要求。

参考

https://www.vm66.com/11503.html

相关文章:

  • 前端性能优化之vue-cli3 开启gizp压缩及nginx配置
  • 关于php操作http header
  • 力扣 反转链表II
  • 本周技术关注:Awstats、Mrtg、Webalizer How-TO Articles
  • 力扣打卡:有效的字母异同位
  • Hibernate 3.2 SQL函数返回类型从Integer变为Long
  • 浅谈vue中index.html、main.js、App.vue、index.js之前的关系以及加载过程
  • 忠厚开发者与“厚道”甲方II(超级Demo)——CSDN外包实践(38)
  • eladmin前端 学习笔记
  • 外包频道服务能力共建,项目顾问CRM管理——CSDN外包实践(39)
  • js中map与foreach的区别
  • em与rem的区别与使用
  • AI编辑器设想
  • export default 与 export 区别
  • 启动用户实例的进程时出错(Sql Server Exoress)
  • 【5+】跨webview多页面 触发事件(二)
  • 【知识碎片】第三方登录弹窗效果
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • avalon2.2的VM生成过程
  • HTML-表单
  • Java程序员幽默爆笑锦集
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Travix是如何部署应用程序到Kubernetes上的
  • Vue2.0 实现互斥
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 区块链将重新定义世界
  • 如何用vue打造一个移动端音乐播放器
  • 学习JavaScript数据结构与算法 — 树
  • ​一些不规范的GTID使用场景
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #数学建模# 线性规划问题的Matlab求解
  • $.ajax,axios,fetch三种ajax请求的区别
  • (07)Hive——窗口函数详解
  • (转)http-server应用
  • .“空心村”成因分析及解决对策122344
  • .NET CLR基本术语
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • /var/spool/postfix/maildrop 下有大量文件
  • ?php echo ?,?php echo Hello world!;?
  • @RequestMapping处理请求异常
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [2016.7 day.5] T2
  • [51nod1610]路径计数
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析
  • [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项
  • [Docker]六.Docker自动部署nodejs以及golang项目
  • [leetcode]Clone Graph