首页 > 其他分享 >富文本编辑器实现网页图片自动上传

富文本编辑器实现网页图片自动上传

时间:2023-02-09 12:13:30浏览次数:49  
标签:文本编辑 网页 text base64 wordpaster items var 上传 图片

 图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码
目前限chrome浏览器使用
首先以um-editor的二进制流保存为例:
打开umeditor.js,找到UM.plugins['autoupload'],然后找到autoUploadHandler方法,注释掉其中的代码。
加入下面的代码:

//判断剪贴板的内容是否包含文本

//首先解释一下为什么要判断文本是不是为空

//在ctrl+c word中的文字或者图片之后会返回1种(image/png)或者4种type(text/plain,text/html,text/rtf,image/png)类型的对象

//为了兼容4种格式的情况,做了如下的判断

//如下代码:e.originalEvent.clipboardData.items获得剪贴板的内容

//当粘贴了文本之后text是不为空的,同时也会返回当前文本的图片类型

//如果有文字的话不做任何的处理,如果只粘贴图片的话文本一定是空的,包括复制的桌面图片或者截图的图片

var text = e.originalEvent.clipboardData.getData("text");

if(text == ""){

    var items=e.originalEvent.clipboardData.items;

     for (var i = 0, len = items.length; i < len; i++) {

        var item = items[i];

       if ( item.kind == 'file' && item.type.indexOf('image/') !== -1 ) {

         

              var blob = item.getAsFile();

              getBase64(blob, function( base64 ) {

              //sendAndInsertImage(base64,me); 上传到服务器

               setBase64Image(base64,me);

              });

              //阻止默认事件, 避免重复添加;

              e.originalEvent.preventDefault();

             };

        }

}

两个方法:

//执行插入图片的操作

function setBase64Image(base64,editor){

    editor.execCommand('insertimage', {src: base64,_src: base64});

}

//获得base64

function  getBase64(blob, callback) {

    var a = new FileReader();

    a.onload = function(e) {callback(e.target.result);};

    a.readAsDataURL(blob);

};

效果展示:

编辑

详细思路及源码

示例下载:

wordpaster-vue3-cli-ueditor1.5wordpaster-vue-ueditor1.5wordpaster-asp.net-ueditor1.5xwordpaster-php-ueditor1xwordpaster-jsp-ueditor1x​

标签:文本编辑,网页,text,base64,wordpaster,items,var,上传,图片
From: https://www.cnblogs.com/zyzzz/p/17104791.html

相关文章

  • git怎么上传代码到分支
    1.  查看远程的分支      gitbranch-r   2.在本地新建一个分支   gitcheckout-b分支名   3.添加文件  gitadd.   如有......
  • Java利用ChromeDriver插件网页截图(Wondows版+Linux版)
    **chromedriver是谷歌浏览器驱动,用来模拟谷歌运行操作的一个工具,本文主要讲解Java后端利用此插件进行网页截图,并且适配Linux部署。**环境准备Wondows服务器或电脑本机......
  • 个别用户电脑上传某些格式视频无法预览/播放
    场景:某些电脑用户上传同一视频,却发现无法预览/播放该视频,如mov/f4v/vob/rm/rmvb...等格式原因:使用同一个文件上传出现通过获取到的file对象type属性为"",系统中所安装的Mic......
  • 磁盘空间不足导致ftp文件上传失败
    今天用ftp准备将相应文件上传至服务器中,但是却无法上传,也没有什么报错语言,就是一个failed。换给软件上传也没用,报同样的错误。 后来发现,是服务器根目录磁盘空间不足,显示......
  • ttyd 网页版的终端工具
    项目地址:https://github.com/tsl0922/ttyd根据系统配置下载对应的文件设置服务/etc/systemd/system/ttyd.service[Unit]Description=ttydAfter=syslog.targetAfter=......
  • postman如何测试上传文件
    小伙伴们知道postman如何测试上传文件吗?今天小编就来讲解postman测试上传文件的方法,感兴趣的快跟小编一起来看看吧,希望能够帮助到大家呢。第一步:首先,打开电脑上的postman......
  • ASP.NET WEB项目大文件上传下载解决方案
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传......
  • JAVA WEB项目大文件上传下载解决方案
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上......
  • JAVA WEB项目大文件上传下载源代码
    ​ 1、介绍enctypeenctype 属性规定发送到服务器之前应该如何对表单数据进行编码。enctype作用是告知服务器请求正文的MIME类型(请求消息头content-type的作用一样)1、......
  • Blazor文件上传异常:Did not receive any data in the allotted time
    最近使用Blazor做文件上传,无论是Page还是Service处理,使用以下代码,都会报异常错误Didnotreceiveanydataintheallottedtime。//Page页面微软官网文档:https://learn......