百度编辑器(Ueditor)视频上传到阿里云 + 预览不支持FLASH问题解决 + 输入框不展示视频播放页面问题解决

news2024/9/24 1:18:33

目前需求方提出的问题是以下四个: 

1.百度编辑器(Ueditor)视频上传到阿里云

2.解决不支持FLASH问题

3.视频上传后可以预览

4.修改视频封面

看一下原始的功能是什么样的

上传视频:

视频上传完成

上传视频保存的路径:


问题目前都展示出来了,那么我们来一个个的解决一下(解决问题的顺序会是乱序,大家注意

首先我们解决第4点浏览器有缓存,注意刷新和重开浏览器才会有效

直接晒出代码:

修改的目标文件ueditor.all.min.js

搜索关键字controls

添加代码poster="图片地址"//图片地址一定要是https的图片服务器存储的图片

 

 然后我们解决第1点:

修改的目标文件Uploader.class.php  中的  upFile 方法

    private function upFile()
    {
        $file = $this->file = $_FILES[$this->fileField];
        if (!$file) {
            $this->stateInfo = $this->getStateInfo("ERROR_FILE_NOT_FOUND");
            return;
        }
        if ($this->file['error']) {
            $this->stateInfo = $this->getStateInfo($file['error']);
            return;
        } else if (!file_exists($file['tmp_name'])) {
            $this->stateInfo = $this->getStateInfo("ERROR_TMP_FILE_NOT_FOUND");
            return;
        } else if (!is_uploaded_file($file['tmp_name'])) {
            $this->stateInfo = $this->getStateInfo("ERROR_TMPFILE");
            return;
        }
        //修改:上传阿里云OSS
        $ossClient=new OssClient('阿里云服务器accessKey','阿里云服务器accessKeySecret','阿里云服务器endpoint');
        $ossClient->uploadFile('telemedicine', 'meeting_file/'.date ('Ym') .'/'.$file['name'], $file['tmp_name']);
        $this->oriName = $file['name'];
        $this->fileSize = $file['size'];
        $this->fileType = $this->getFileExt();
        $this->fullName = $this->getFullName();
        $this->filePath = $this->getFilePath();
        $this->fileName = $this->getFileName();
        $dirname = dirname($this->filePath);

        //检查文件大小是否超出限制
        if (!$this->checkSize()) {
            $this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED");
            return;
        }

        //检查是否不允许的文件格式
        if (!$this->checkType()) {
            $this->stateInfo = $this->getStateInfo("ERROR_TYPE_NOT_ALLOWED");
            return;
        }

        $this->stateInfo = $this->stateMap[0];
    }

修改的目标文件config.json  中的  上传视频配置 方法

/* 执行上传视频的action名称 */
"videoActionName": "uploadvideo", 
/* 提交的视频表单名称 */
"videoFieldName": "upfile", 
/* 上传保存路径,可以自定义保存路径和文件名格式 */
"videoPathFormat": "/存放文件夹名字/{yyyy}{mm}/{filename}",
/* 视频访问路径前缀 */
"videoUrlPrefix": "阿里云服务器endpoint", 
/* 上传大小限制,单位B,默认100MB */
"videoMaxSize": 1024000000, 
/* 上传视频格式显示 */
"videoAllowFiles": [
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], 

然后我们解决第2点:

修改的目标文件video.js  中的 createPreviewVideo 方法(至于原方法中的 lang.urlError,这个是错误提示信息,可以根据你自己的需要去开启或者屏蔽其中的一些提示信息)

$G("preview").innerHTML = '<div class="previewMsg"></div>'+
'<p><video controls class="previewVideo"' +
' width="' + 600 + '"' +
' height="' + 300  + '"' +
' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >' +
'<source type="video/mp4" src="' + conUrl + '">' +
'</video></p>';


最后解决第3点:

修改文件ueditor.config.js

whitList数组中添加配置:

source: ['src', 'type'],
embed: ['type', 'class', 'pluginspage', 'src', 'width', 'height', 'align', 'style', 'wmode', 'play', 'autoplay', 'loop', 'menu', 'allowscriptaccess', 'allowfullscreen', 'controls', 'preload'],
iframe: ['src', 'class', 'height', 'width', 'max-width', 'max-height', 'align', 'frameborder', 'allowfullscreen']


修改文件ueditor.all.js 中  creatInsertStr 方法

case 'embed':
str = '<p><video controls class="previewVideo"' +
' width="' + width + '"' +
' height="' + height  + '"' +
' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >' +
'<source type="video/mp4" src="' + url + '">' +
'</video></p>'
break;
case 'video':
var ext = url.substr(url.lastIndexOf('.') + 1);
if(ext == 'ogv') ext = 'ogg';
str = '<p><video poster="https://csxstg.ccmtv.cn/static/lib/ueditor1_4_3_3-utf8-php/utf8-php-xiumi/themes/default/images/video.jpg" ' + (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></p>';
break;

修改文件ueditor.all.js 中  switchImgAndVideo方法

var className = node.getAttr('class');
if(className && className.indexOf('edui-faked-video') != -1){
        var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'embed':'embed');
        node.parentNode.replaceChild(UE.uNode.createElement(html),node);
}
if(className && className.indexOf('edui-upload-video') != -1){
        var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'video':'video');
        node.parentNode.replaceChild(UE.uNode.createElement(html),node);
}

修改文件ueditor.all.js 中  me.commands["insertvideo"]方法

for(var i=0,vi,len = videoObjs.length;i<len;i++){
    vi = videoObjs[i];
    cl = (type == 'upload' ? 'edui-upload-video video-js vjs-default-skin':'edui-faked-video');
    html.push(creatInsertStr( vi.url, vi.width || 420,  vi.height || 280, id + i, null, cl, 'video'));
}

至此,四个问题全部解决完成,希望大家遇到此类问题少走弯路,分分钟搞定

提示:

1.第3点中ueditor.all.js 中  creatInsertStr 方法中,需要新增<p>标签,这样是为了视频能够被选中

2.修改视频上传,编辑功能也会被去掉,这个非常重要,样式只能通过html按钮进入页面来实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/696951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用vant组件库

参考网址 Vant Weapp - 轻量、可靠的小程序 UI 组件库 1.在小程序中右键打开外部终端窗口 2.npm init -y 生成package.json 如果没有npm指令则需安装node.js 地址&#xff1a;https://nodejs.org/dist/v18.16.1/node-v18.16.1-x64.msi 3.npm i vant/weapp1.3.3 -S --pro…

PHP 论坛系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 论坛系统 是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为PHP APACHE&#xff0c;数据库为 mysql5.0&#xff0c;使用php语言开发。 下载链接…

oracle服务器的CPU占用率一直100%排查方式

背景说明 公司开发、测试、演示环境&#xff0c;三个环境的oracle服务器无论服务器是否空闲&#xff0c; CPU的占用率一直是100%&#xff0c; 一直也没有找到问题原因&#xff0c;今天就花了一整天时间研究这个问题。 通过AWR报告查看oracle运行情况 awr报告是oracle 10g下提…

一种人体属性识别的网络结构

0、前言 人体属性识别&#xff0c;是一个典型的多标签分类场景。每个人体有多个标签&#xff0c;如年龄、性别、衣着颜色等&#xff0c;而每个属性又有多种类别&#xff0c;如年龄分儿童青年老人、性别分男女、颜色分红绿青蓝紫... 本文提供了一个网络结构来执行这种任务。 …

【KVM】命令行安装kvm

命令行安装kvm 一、准备镜像文件 mkdir /home/iso cd /home/iso rz ls CentOS-7-x86_64-Minimal-2009.iso二、使用命令行安装虚拟机 virt-install --virt-typekvm --nameKVM_01 --vcpus4 --memory6000 --location/opt/CentOS-7-x86_64-Minimal-2009.iso --disk path/data/kv…

2021年全国硕士研究生入学统一考试管理类专业学位联考数学试题——纯题目版

2021 年 1 月份管综初数真题 一、问题求解&#xff08;本大题共 5 小题&#xff0c;每小题 3 分&#xff0c;共 45 分&#xff09;下列每题给出 5 个选项中&#xff0c;只有一个是符合要求的&#xff0c;请在答题卡上将所选择的字母涂黑。 1.某便利店第一天售出50种商品&…

联邦学习中的模型聚合

目录 联邦学习中的模型聚合 1.client-server 算法 2. fully decentralized(完全去中心化)算法 联邦学习中的模型聚合 在联邦学习的情景下引入了多任务学习&#xff0c;其采用的手段是使每个client/task节点的训练数据分布不同&#xff0c;从而使各任务节点学习到不同的模型…

[python] 进度条使用

from tqdm import tqdm# 创建一个示例字典 my_dict {a: 1, b: 2, c: 3}# 使用tqdm遍历字典的键 for key in tqdm(my_dict.keys()):# 在这里编写你的代码# 这部分代码将会在进度条中显示pass# 使用tqdm遍历字典的值 for value in tqdm(my_dict.values()):# 在这里编写你的代码#…

查看 git的 config 配置

git config --list // 查看全部配置信息git config user.name // 查看指定配置信息 查看某一个配置信息 git config --global user.email 参考 如何查看gitconfig配置_笔记大全_设计学院

牛客BM21 旋转数组的最小数字

描述 有一个长度为 n 的非降序数组&#xff0c;比如[1,2,3,4,5]&#xff0c;将它进行旋转&#xff0c;即把一个数组最开始的若干个元素搬到数组的末尾&#xff0c;变成一个旋转数组&#xff0c;比如变成了[3,4,5,1,2]&#xff0c;或者[4,5,1,2,3]这样的。请问&#xff0c;给定…

IDEA远程DeBug调试

1. 介绍 当我们在开发过程中遇到一些复杂的问题或需要对代码进行调试时&#xff0c;远程调试是一种非常有用的工具。使用 IntelliJ IDEA 进行远程调试可以让你在远程服务器上的应用程序中设置断点、查看变量和执行调试操作。 远程调试的好处如下&#xff1a; 提供更方便的调试…

大众汽车车载娱乐系统曝安全漏洞,可被远程控制

根据GitHub的一份报告&#xff0c;大众汽车Discover Media信息娱乐系统的漏洞是在2023年2月28日发现的。 该漏洞可能会使未打补丁的系统遭到拒绝服务&#xff08;DoS&#xff09;攻击。该漏洞起初是由大众汽车的用户发现的&#xff0c;随后大众汽车方面确认了该漏洞&#xff0…

Golang 一个支持错误堆栈, 错误码, 错误链的工具库

介绍 来腾讯之后主要使用go, 在业务开发中需要一个支持错误码对外返回, 堆栈打印等能力的错误工具库, 先开始使用pkg/errors, 但该项目已经只读, 上次更新是几年前, 而且有一些点比如调整堆栈深度等没有支持, 后续根据业务的需要抽取了一个通用库, 且做了一些优化, 详见下方. …

Apikit 自学日记:发起文档测试-RPC

以DUBBO接口为例&#xff0c;进入某个DUBBO协议的API文档详情页&#xff0c;点击文档上方 测试 标签&#xff0c;即可进入 API 测试页&#xff0c;系统会根据API文档的定义的请求报文自动生成测试界面并且填充测试数据。 对RPC/DUBBO接口发起测试 填写请求报文参数值 此测试D…

Spring(8) Springboot自动配置原理

目录 1.背景2.SpringBootApplication 注解3.三大注解4.EnableAutoConfiguration 注解5.spring.factories6.示例&#xff1a;RedisAutoConfiguration 类 1.背景 Springboot 的自动配置原理&#xff0c;是Springboot中最高频的一道面试题&#xff0c;也是Springboot框架最核心的…

react antd 样式修改

最近在做一个大数据的大屏ui更改&#xff0c;使用的是antd&#xff0c;需要根据ui稿调很多的antd组件样式 特做一个样式修改记录&#xff0c;也给需要的人一些帮助 我们修改的有以下样式&#xff1a; 如何改呢&#xff1a; /*修改 antd 组件样式 */// 仅 drop 下的下拉框改变样…

Linux Host is not allowed to connect to this MySQL server解决方法

先说说这个错误&#xff0c;其实就是我们的MySQL不允许远程登录&#xff0c;所以远程登录失败了&#xff0c;解决方法如下&#xff1a; 在装有MySQL的机器上登录MySQL mysql -u root -p密码 执行use mysql; 执行update user set host % where user root;这一句执行完可能会报…

PoseiSwap IDO、IEO 结束,即将登录 BNB Chain

PoseiSwap 是 Nautilus Chain 上的首个 DEX&#xff0c;其正在基于模块化 Layer3 架构底层&#xff0c;以及Nautilus Chain 所提供的 ZKP 来构建属于自己的 Rollup 应用层&#xff0c;并以订单簿作为交易模型&#xff0c;这为其向更多的功能进行拓展提供了早期基础。

如何打开Windows11上自带安装unbunt系统

首先你看到在你电脑上有一个这样 如果直接鼠标点击打开或者使用powershell打开&#xff0c;也可以打开&#xff0c;但发现只是一堆文件夹而已 正确打开方式&#xff0c;使用unbunt-LTS&#xff0c;打开&#xff0c;这个在哪里&#xff1f; 你可以在电脑Microsoft store输入 u…

春秋云镜cve-2022-32991wp

首先看靶标介绍&#xff1a;该CMS的welcome.php中存在SQL注入攻击 访问此场景&#xff0c;为登录界面&#xff0c;可注册&#xff0c;注册并登陆后找可能存在sql注入的参数&#xff0c;尝试在各个参数后若加一个单引号报错&#xff0c;加两个单引号不报错&#xff0c;说明此参…