首页 > 编程语言 >dedecms粘贴图片自动上传到服务器(Java版)

dedecms粘贴图片自动上传到服务器(Java版)

时间:2023-04-07 15:55:18浏览次数:49  
标签:Java text base64 dedecms 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​

 

标签:Java,text,base64,dedecms,wordpaster,items,var,粘贴,图片
From: https://www.cnblogs.com/songsu/p/17296430.html

相关文章

  • java基础——静态代理和动态代理
    java代理模式有静态代理和动态代理两种实现方式一、静态代理代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的附加与增强。代理类和被代理类应该共同实现一个接口,或者是共同继承某个类。优点:可以在不修改目标对象的前提下扩展目标对象的功能......
  • 如何在Java中做基准测试?JMH使用初体验
    大家好,我是王有志,欢迎和我聊技术,聊漂泊在外的生活。快来加入我们的Java提桶跑路群:共同富裕的Java人。最近公司在搞新项目,由于是实验性质,且不会直接面对客户的项目,这次的技术选型非常激进,如,直接使用了Java17。作为公司里练习两年半的个人练习生,我自然也是深度的参与到了技术选......
  • PHPCMS粘贴图片自动上传到服务器(Java版)
    ​ 这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@     page contentType="text/html;cha......
  • Java 自增自减运算符和移位运算符介绍
    摘自JavaGuide(「Java学习+面试指南」一份涵盖大部分Java程序员所需要掌握的核心知识。准备Java面试,首选JavaGuide!)自增自减运算符在写代码的过程中,常见的一种情况是需要某个整数类型变量增加1或减少1,Java提供了一种特殊的运算符,用于这种表达式,叫做自增运算符(++)和自......
  • Java数组
    数组数组的定义数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们.数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的......
  • java 进程假死原因排查
    1.假死现象服务程序假死具有以下特征:1.程序对请求没有任何响应;2.程序请求时没有任何日志输出;3.程序进程存在,通过jps或者ps查看进程,可以看到服务进程存在;2.造成假死的可能原因1.java线程出现死锁,或所有线程被阻塞;2.数据库连接池中的连接耗尽,导致获取数据库连接时永久等......
  • Linux 系统配置Java Idea Tomcat 全过程
    环境搭建记录-开发环境搭建:1.IDEA安装https://www.jetbrains.com/idea/download/#section=linux解压后执行bin目录idea.sh运行2.JDK安装下载jdk15官方网站:https://www.oracle.com/java/下载页面:https://www.oracle.com/cn/java/technologies/javase-downloads.html2)安装j......
  • Java中子类重写父类方法的思想本质!
    Java语言中,在子类中定义与父类同返同名同参的方法将会出现“重写(覆写)”,子类将屏蔽父类的相同方法,调用子类的方法将不会调用到父类的该方法。许多初学者也许会被“覆写”一词迷惑,以为覆盖掉了父类的方法,其实这两种方法是同时独立存在的,只是子父类调用该方法的入口不一样,彼......
  • JAVA 的绘图技术(基础)
         ......
  • 剑指offer004(Java)-只出现一次的数字(中等)
    题目:给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次。请你找出并返回那个只出现了一次的元素。示例1:输入:nums=[2,2,3,2]输出:3示例2:输入:nums=[0,1,0,1,0,1,100]输出:100 提示:1<=nums.length<=3*104-231<=nums[i]<=231-......