vditor编辑器上传视频方法详解

2023-11-05

此文章主要讲编辑器上传视频的方法,若想了解vditor更多更详细的使用方法可以参考vue中使用vditor(发布,编辑,详情回显、上传图片+粘贴图片回显问题,表情的处理)

1.html

<div id="markdownContent"></div>

2.demo

toolbar: [
	{
       hotkey: "",
       name: "upload",
       tip: "上传图片或视频",
       className: "right",
     },
]
//这里写上传图片或视频
upload: {
  accept: 'image/jpg, image/jpeg, image/png, image/gif, .mp4',
  token: this.token,
  url: this.gb.reqPath('/v1/Upload/upload'),
  multiple: false,
  fieldName: 'file',
  max: 50 * 1024 * 1024,
  extraData: {'access_token': this.token}, //为 FormData 添加额外的参数
  linkToImgUrl: this.gb.reqPath('/v1/Upload/uploadUrl'),
  filename(name) {
    return name.replace(/[^(a-zA-Z0-9\u4e00-\u9fa5\.)]/g, "")
      .replace(/[\?\\/:|<>\*\[\]\(\)\$%\{\}@~]/g, "")
      .replace("/\\s/g", "");
  },
  linkToImgFormat(files) {
    let code = 0
    let msg = ''
    let data = JSON.parse(files)
    // //上传图片请求状态
    if (data.ret_code == 200) {
      let responseData = self.gb.imgOutLinkPath(data.result.path)
      let succUrl = {}
      let originalURL = 'originalURL'
      let url = 'url'
      succUrl[originalURL] = data.result.originalURL
      succUrl[url] = responseData
      let end = JSON.stringify({
        msg,
        code,
        data: succUrl
      })
      return end
    }
    setTimeout(() => {
      self.outLinkImgFun();
    }, 3000);
  },
  format(files, responseText) {
    // let imageResult = JSON.parse(responseText)
    let code = JSON.parse(responseText)
    let msg = JSON.parse(responseText)
    let data = JSON.parse(responseText)
    let filName = data.result.image_url
    //上传文件请求状态
    if (data.ret_code == 200) {
      let lastTipNum = filName.substr(filName.lastIndexOf('/', filName.lastIndexOf('/') - 1) + 1);
      let index = lastTipNum.lastIndexOf("\/");
      self.imgNameStr = decodeURI(lastTipNum.substring(index + 1, lastTipNum.length));
      let responseData = self.gb.imgPath(data.result.image_url)
      let succ = {}
      succ[self.imgNameStr] = responseData
      //文件回显
      return JSON.stringify({
        msg,
        code,
        data: {
          errFiles: [],
          succMap: succ
        }
      })
    } else {
      if(msg.ret_code == 20602503) {
        self.$message({
          message: msg.ret_msg+'(图片不大于2M,视频不大于50M)',
          type: 'error'
        })
      }
    }

  },
  error(msg) {
    console.log(msg + "上传失败了")
  },
}

3感受

用这款编辑器到现在,有以下两点感受

1.文档:
若你的项目无特殊要求,则官方文档就足够了;若你的项目有特殊要求,如我的项目有复制粘贴外链图片,同时需要处理没有权限粘贴的图片,或者判断文章内容点击的链接是否是外部链接,若是外部链接进行特殊处理等特殊要求,文档没有帮助,需要自己花时间去翻帖子

2.功能交互
太依赖后端了,好多前端可以处理的事情,需要后端去进行处理

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vditor编辑器上传视频方法详解 的相关文章

  • 在一定时间后自动更改 Firestore 中的字段值 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 I m working on Javascript and here s how s my data looks like 我想要的功
  • 工厂函数方法不更新变量

    我正在尝试设置一个工厂函数 该函数将更新所述工厂函数中特定变量的值 这看起来实现起来很简单 但是 每当我测试它时 我都会得到变量的原始设置值 而不是更新后的值 我确信在范围界定方面我缺少一些细微差别 但这里到底发生了什么 const fac
  • Python 解码 JSON 中的嵌套 JSON

    我正在处理一个 API 不幸的是它返回了格式错误 或 奇怪的格式 而是 感谢 fjarri JSON 但从积极的一面来看 我认为这可能是我学习一些有关递归以及JSON 这是我用来记录锻炼的应用程序 我正在尝试制作备份脚本 我可以很好地收到
  • 范围滑块 javascript 以小时和分钟为单位

    我试图分别以小时和分钟为单位显示滑块的值 我对 JS 还很陌生 并且仍在尝试了解它是如何工作的 到目前为止 我所拥有的是一个工作滑块 其最大值为 1440 24 小时内的分钟 在 JS 中 我尝试将其划分为小时和分钟 并使用 innerHt
  • 无法加载资源:服务器在已部署的 React.js 项目中响应状态为 404(未找到)

    当我将 React 项目部署到 Surge 中时 构建成功并且可以获取应用程序 URL 但是当我链接到 URL 时 我可以在检查控制台中看到一个空白页面和一些错误 Failed to load resource the server res
  • 使用 JSON 将数据从 Python 导出到 Tableau?

    如何以表格形式从 Python 获取 400 万行和 28 列 我假设 基于搜索 我应该使用 JSON 格式 这种格式可以处理大量数据并且足够快 我制作了 12 行数据的子集并尝试使其正常工作 好消息是 它正在发挥作用 坏消息 不是我想要的
  • WCF JSON 输出添加了不需要的引号和反斜杠

    好吧 所以我很困惑为什么我正在构建的字符串 神奇地 添加了额外的字符 首先 我看到反斜杠出现在立即窗口中 ID 1 F1 lala F2 hehe ID 2 F1 abc F2 def 但是在谷歌上读到这些只是 视觉 并且实际上并不存在于变
  • JavaScript 回调的效率

    我只是想证实我的一个怀疑 我偶然发现了一篇文章 建议按以下方式使用 Socket io var app require express createServer var io require socket io listen app app
  • 停止倒数计时器 Javascript onClick

    给出以下代码 myButton02 click function myButton02 hide counter animate width toggle var count 65 var counter setInterval timer
  • Puppeteer 登录 Instagram

    我正在尝试使用 Puppeteer 登录 Instagram 但不知何故无法登录 你能帮助我吗 这是我正在使用的链接 https www instagram com accounts login https www instagram co
  • JavaScript - babel-preset-env 不为 IE11 转换箭头函数

    我很难尝试配置 Babel 来转译 IE11 可以理解的代码 特别是箭头函数 跑步npx webpack mode development使用我的配置不会转换我的代码中的箭头函数 在eval 在生成的代码中的语句中 我可以看到所有实例都未转
  • Google 闭包编译器使用 WebStorm

    我喜欢用谷歌闭包编译器 https developers google com closure compiler in WebStorm https www jetbrains com webstorm 我已经通过 npm 下载了它 npm
  • Angularjs 使用 ng-init 为 ng-model 赋值

    您好 我有以下问题 看起来很简单并且应该有效 但事实并非如此 在我的代码中我输入了
  • Array.from 的时间复杂度

    时间复杂度是多少Array from 例如 const set new Set set add car set add cat set add dog console log Array from set time complexity o
  • pointdown 与 onclick:有什么区别?

    两者有什么区别onpointerdown and onclick事件处理程序 有任何实际差异吗 事件在 DOM 树上传播的方式不一样吗 是否有一些设备仅响应这些事件之一 我最初以为这只是pointerdown在触摸设备或笔中触发 但是onc
  • 使用预先存在的数据库创建 PhoneGap iOS 应用程序

    我最近开始开发一个使用 PhoneGap 版本 2 8 0 作为药物查找器的应用程序 过去 我创建了该工具的 Web 版本 它使用 jQuery Mobile 和 PHP 来访问远程 SQL 数据库 PhoneGap 似乎是一个很有吸引力的
  • Javascript 或 Coffeescript 中的“Bucket Fill”算法

    我正在编写一个小coffeescript js应用程序 允许用户设计图标 16x16像素或32X32像素 该图标实际上是一个带有颜色单元的二维数组 单元格可以有颜色或为空 我希望用户能够使用 桶油漆 工具填充空白单元格 代表着 如果用户单击
  • 使用 _.extend() 进行 JavaScript 继承

    有什么区别 Employee prototype Object create Person prototype and extend Employee prototype Person prototype 两者都给出相似的结果 输出 但下划
  • Firefox 本地主机上的 Twilio 屏幕共享?

    目前 Firefox 中本地主机上的屏幕共享会引发以下错误 The request is not allowed by the user agent or the platform in the current context 这是我的代码
  • 什么是标志变量?

    最近我遇到了标志变量 但我不知道它们的作用 我不太确定何时使用标志变量以及如何使用它 我用 Google 搜索了它 但没有任何与我的上下文 JavaScript 相关的具体示例 标记变量的定义和使用 http www javascriptk

随机推荐

  • 第1章 数据库系统概论---数据库原理及应用

    目录 课程学习目标 本课程教学内容 课程教材 课程实践使用的数据库软件 第1章 数据库系统概论 1 数据库系统概述 一 基本概念 数据 文字 图片等数据化后存入计算机 数据库 DB 按一定的数据模型组织的共享数据 数据库管理系统 DBMS
  • python 读写hive

    最近正在 做一个 项目 需要把 算法模型的结果持久化 至hive 目前 使用的 pyhive 切记 在windows上不能使用 我目前在centos6 5上使用 官方说再macos和linux上可用 from pyhive import h
  • Vue中filter函数 过滤器的使用

    filters是什么 filters顾名思义是一个过滤器 就是对数据进行过滤筛选 将数据转化为我们想要的格式 但是他不会改变原始数据 filters分为两类 一 局部过滤器 局部过滤器的特点 只能作用于本组件没内 定义局部过滤器 在本组件内
  • Flutter和Android中的View

    在Android中 View是屏幕上显示的所有内容的基础 按钮 工具栏 输入框等一切都是View 在Flutter中 View相当于是Widget 然而 与View相比 Widget有一些不同之处 首先 Widget仅支持一帧 并且在每一帧
  • python3「非阻塞socket」报错 “BlockingIOError: [Errno 11]“ 复现以及分析解决

    梦想还在 生活当继续 一 前言 linux 下 用 python 的非阻塞 socket 通信时 遇到了 BlockingIOError Errno 11 Resource temporarily unavailable 错误 翻译报错信息
  • 链表-真正的动态数据结构

    创建节点 public class Node T val Node next public Node T val Node next this val val this next next public Node this null nul
  • keycloak~11.3.0之后微信认证问题解决

    基于keycloak11 0 3版的微信认证的实现 而在升级到keycloak14 0 0之后 这个认证出现了问题 原因是因为人家keycloak内部源码又变了 影响类文件 server spi private src main java
  • JS导出Excel自动获取table页面数据自动获取,并进行单元格合并行,列

    JS获取table页面数据自动获取 并进行单元格合并行 列 自己在百度上看的 感觉还可以 自己吧下面的代码复制就可以用了 关于无法启动Excel问题 这是HTML页面
  • 服务器定期巡检项目,服务器定期巡检制度..docx

    服务器定期巡检制度 服务器定期巡检制度为了保证省内各网点服务器正常 有序 安全运转 提升工作效率 保障客户能够更好的应用汇信科技产品及相关服务 特制定本制度 对服务器巡检加以规范 服务器由专人负责统一管理和日常维护 其他员工未经允许 不得擅
  • 两个一元多项式相加(链表

    顺序表实现 include
  • 2020 年最具潜力的 44 个顶级开源项目

    来源 AI开发者 本文约为7600字 建议阅读10分钟 本文给开发者提供了详细的各领域工具并整理了清单11 种极具潜力的 AI 工具类型 工欲善其事必先利其器 这也是大部分开发者在日常工作中最重要开发原则 选择与开发内容相匹配的工具 常常会
  • VUE路由传参的三种基本方式

    vue中路由传参的三种基本方式 在vue项目中我们在路由中需要接触到最多的就是路由之间的传值 在这里主要介绍了vue自带的路由传参的3种基本方式 场景一 单击当前页的按钮跳转到另一个页面 并将数据传到另一个页面 div class btn
  • navicat premium 连接oracle_详解navicat工具实现Oracle数据库结构同步

    概述 Navicat 是一套快速 可靠并价格相宜的数据库管理工具 专为简化数据库的管理及降低系统管理成本而设 Navicat提供多达 7 种语言供客户选择 被公认为全球最受欢迎的数据库前端用户界面工具 Navicat旗下有多个产品成员 可以
  • Adobe illustrator2022(Ai2022)新增功能

    使用 Adobe Substa nce 材质添加纹理 使用 Substance 材质为图稿添加纹理 并创建逼真的 3D 图形 您可以添加自己的材质 也可以从数以千计的 Sub stance 材质资源中进行选择 无缝激活缺失字体 现在 您可以
  • md5 通用工具类

    目录 Java版本 js版本 简介 MD5加密工具类 效果展示 Java版本 import java security MessageDigest title java MD5工具类 author wanglei21 since 2023
  • 从零到一搭建Kconfig配置系统

    从零到一搭建Kconfig配置系统 背景说明 最早接触到Kconfig是在zephyr项目中 之后陆续知道linux和RT Thread等项目都是用Kconfig来管理编译的 而自己也陆续有大型项目开发需要 了解过后对其使用愈发感兴趣起来
  • 什么是计算卸载

    简言 为了应对终端设备处理能力不足 资源有限等问题 业界在移动边缘计算 MEC 中引入了计算卸载概念 边缘计算卸载即用户终端 UE 将计算任务卸载到MEC网络中 主要解决设备在资源存储 计算性能以及能效等方面的不足 0 1 背景 随着科技的
  • 中兴Blade V2021 5G 刷机root教程 ZTE 8012N root 线刷包下载TWRP 刷入

    中兴Blade V2021 5G 刷机root教程 ZTE 8012N root 线刷包下载TWRP 刷入 中兴 ZTE V2021 5G深空灰 6GB 128GB 全网通4800万高 手机 gt 中兴 gt 中兴Blade V2021 6
  • 【pta打印选课学生(python版) 基于python3.0】

    pta打印选课学生 python版 题目介绍 假设全校有最多40000名学生和最多2500门课程 现给出每个学生的选课清单 要求输出每门课的选课学生名单 输入格式 输入的第一行是两个正整数 N 40000 为全校学生总数 K 2500 为总
  • vditor编辑器上传视频方法详解

    此文章主要讲编辑器上传视频的方法 若想了解vditor更多更详细的使用方法可以参考vue中使用vditor 发布 编辑 详情回显 上传图片 粘贴图片回显问题 表情的处理 1 html div div 2 demo toolbar hotke