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

php-使用wangeditor实现富文本(完成图片上传)-npm

官网参考连接:快速开始 | wangEditor

样式:

一、新建一个临时文件夹test1和一个文件夹wangeditor

  • 临时文件夹test1:临时存放通过npm下载的文件
  • 文件夹wangeditor:用于存放在临时文件夹test1拷贝的css和js

二、安装 editor

在确保有npm环境的情况下,在终端安装editor

npm install "@wangeditor/editor" --save

 调出终端运行npm install "@wangeditor/editor" --save

安装完成的test1目录

三、找到安装文件中的css和js文件,进行拷贝

 目录

将css和js文件拷贝到文件夹wangeditor

四、选择删除临时文件夹test1

五、代码

前端代码

<tr><td><span style="color:red">*</span>内容</td><td colspan="20"><!--引入富文本编辑器--><div id="editor—wrapper" name="editor—wrapper"><div id="toolbar-container"><!-- 工具栏 --></div><div id="editor-container"><!-- 编辑器 --></div></div></td>
</tr>

引入富文本编辑器样式

<link href="api/wangeditor/style.css" rel="stylesheet">
<style>#editor—wrapper {border: 1px solid #ccc;z-index: 100;/* 按需定义 */}#toolbar-container {border-bottom: 1px solid #ccc;}#editor-container {height: 500px;}
</style>

引入js

<script src="api/wangeditor/index.js"></script>
<script>var html; //设置一个变量const {createEditor,createToolbar} = window.wangEditor//编辑器配置const editorConfig = {// MENU_CONF: {},withCredentials: true, //定义该属性为ture表示允许跨域访问autofocus: false,scroll: false,maxLength: 1200,minLength: 200,placeholder: '请输入文本内容', //默认文字onChange(editor) { //当编辑器中发生改变时,获取最新html代码输出html = editor.getHtml() //获取HTML内容,editor.getText()是获取纯文本内容console.log('editor content', html)//将html的值赋值给id为document.getElementById('neirong').value = html;// // 也可以同步到 <textarea>}}editorConfig.MENU_CONF = {}; //确保 editorConfig.MENU_CONF 对象被正确地初始化editorConfig.MENU_CONF['uploadImage'] = {// 上传图片的配置server: 'api/demo.php',fieldName: 'file',maxFileSize: 6 * 1024 * 1024,maxNumberOfFiles: 200,}//创建编辑器const editor = createEditor({selector: '#editor-container',html: '<p><br></p>',config: editorConfig,mode: 'default', // or 'simple'})//工具栏配置const toolbarConfig = {}// toolbar.getConfig().toolbarKeys//隐藏视频上传功能toolbarConfig.excludeKeys = ['group-video']//创建工具栏const toolbar = createToolbar({editor,selector: '#toolbar-container',config: toolbarConfig,mode: 'default', // or 'simple'})
</script>

后端接口完成上传图片的功能实现

php

在当前目录中的接口文件夹api中,创建文件demo.php

对用script中的的server: 'api/demo.php',//连接到接口文件,执行数据上传功能

代码

 <?php // //图片文件的生成$savename = date('YmdHis',time()).mt_rand(0,9999);//生成随机数作为图片名称$imgdirs = "../image/".date('Y-m-d',time()).'/';//文件夹名称(/upload/image/日期/)mkdirs($imgdirs);//创建$imgdirs文件夹//获取图片文件的名字$fileName = $_FILES["file"]["name"];// //获取图片类型$file_type = $_FILES["file"]["type"];$type = '';//判断是否是图片switch ($file_type) {case 'image/png':$type = '.png';break;case 'image/gif':$type = '.gif';break;case 'image/jpeg':$type = '.jpg';break;}//图片保存的路径$savepath = $imgdirs.$savename.$type; // upload.php文件在api文件夹里,upload文件夹和api文件夹同级//生成一个URL获取图片的地址$url = "http://自己服务器的域名或者ip/feiyoute" . str_replace('..','',$savepath); //线上地址// $url = "http://localhost/my-blog/upload/" . $savename.$type; // 本地地址// 临时文件移动到指定文件夹$rs = move_uploaded_file($_FILES["file"]["tmp_name"],$savepath);if($rs) {$data['url'] = "{$url}";$data["alt"] = $fileName;$data["href"] = "{$url}";$result=array('errno'=>0,'data'=>array($data));//输出特定样式echo json_encode($result);} else {$result=array('errno'=>1,'message'=>'失败信息');echo json_encode($result);}//创建文件夹 权限问题function mkdirs($dir, $mode = 0777){if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;if (!mkdirs(dirname($dir), $mode)) return FALSE;return @mkdir($dir, $mode);}
?>

输出的格式必须按照官网给出的样式才行

案例

 

相关文章:

php-使用wangeditor实现富文本(完成图片上传)-npm

官网参考连接&#xff1a;快速开始 | wangEditor 样式&#xff1a; 一、新建一个临时文件夹test1和一个文件夹wangeditor 临时文件夹test1&#xff1a;临时存放通过npm下载的文件文件夹wangeditor&#xff1a;用于存放在临时文件夹test1拷贝的css和js 二、安装 editor 在确保有…...

mysql查看数据库中所有的表的建表语句

mysql查看数据库中所有的表&#xff1a; SHOW TABLES; 这条命令将返回数据库中所有表的列表。 如果要查看单个表的建表语句&#xff0c;可以使用以下命令&#xff1a; SHOW CREATE TABLE table_name; 其中&#xff0c;"table_name"为你要查看的表的名称。 如果…...

【Axure RP9】实现登入效验及实现左侧菜单栏跳转各页面

目录 一 效验简介 1.1 校验好处 1.2 应用场景 二 登入校验 2.1 效果 2.2 实现流程 三 左边菜单栏左侧菜单栏跳转各页面 3.1 效果 3.2 实现图 一 效验简介 1.1 校验好处 提高安全性&#xff1a; 在传统的用户名和密码登录的基础上&#xff0c;引入了另一种或多种验证…...

76. 最小覆盖子串。优化官方题解!

leetcode原题如下&#xff1a; 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空字符串 "" 。 注意&#xff1a; 对于 t 中重复字符&#xff0c;我们寻找的子字符串中该字符数量…...

在国产GPU寒武纪MLU上快速上手Pytorch使用指南

本文旨在帮助Pytorch使用者快速上手使用寒武纪MLU。以代码块为主&#xff0c;文字尽可能简洁&#xff0c;许多部分对标NVIDIA CUDA。不正确的地方请留言更正。本文不定期更新。 文章目录 前言Cambricon PyTorch的Python包torch_mlu导入将模型加载到MLU上model.to(mlu)定义损失函…...

重生奇迹MU觉醒战士攻略

剑士连招技巧&#xff1a;生命之光&#xff1a;PK前起手式&#xff0c;增加血上限。 雷霆裂闪&#xff1a;眩晕住对手&#xff0c;剑士PK战士第一技能&#xff0c;雷霆裂闪是否使用好关系到胜负。 霹雳回旋斩&#xff1a;雷霆裂闪后可以选择用霹雳回旋斩跑出一定范围(因为对手…...

美颜技术详解:深入了解视频美颜SDK的工作机制

本文将深入探讨视频美颜SDK的工作机制&#xff0c;揭示其背后的科技奥秘和算法原理。 1.引言 视频美颜SDK作为一种集成到应用程序中的技术工具&#xff0c;通过先进的算法和图像处理技术&#xff0c;为用户提供令人印象深刻的实时美颜效果。 2.视频美颜SDK的基本工作原理 首…...

3D模型格式转换工具如何实现高性能数据转换?请看CAE系统开发实例!

​ 客户背景 DP Technology是全球知名的CAM的供应商&#xff0c;在全球8个国家设有18个办事处。DP Technology提供的CAMESPRIT系统是一个用于数控编程&#xff0c;优化和仿真全方面的CAM系统。CAMESPRIT的客户来自多个行业&#xff0c;因此支持多种CAD工具和文件格式显得格外重…...

多级缓存:亿级流量的缓存方案

文章目录 一.多级缓存的引入二.JVM进程缓存三.Lua语法入门四.多级缓存1.OpenResty2.查询Tomcat3.Redis缓存预热4.查询Redis缓存5.Nginx本地缓存6.缓存同步 一.多级缓存的引入 传统缓存的问题 传统的缓存策略一般是请求到达Tomcat后&#xff0c;先查询Redis&#xff0c;如果未…...

C语言——高精度乘法

一、引子 高精度乘法相较于高精度加法和减法有更多的不同&#xff0c;加法和减法是一位对应一位进行操作的&#xff0c;而乘法是一个数的每一位对另一个数的每一位进行操作&#xff0c;需要的计算步骤更多。 二、核心算法 void Calculate(int num1[], int num2[], int numres…...

为什么C语言没有被C++所取代呢?

今日话题&#xff0c;为什么C语言没有被C所取代呢&#xff1f;虽然C是一个功能更强大的语言&#xff0c;但C语言在嵌入式领域仍然广泛使用&#xff0c;因为它更轻量级、更具可移植性&#xff0c;并且更适合在资源受限的环境中工作。这就是为什么C语言没有被C所取代的原因。如果…...

基于Spring的枚举类+策略模式设计(以实现多种第三方支付功能为例)

摘要 最近阅读《贯彻设计模式》这本书&#xff0c;里面使用一个更真实的项目来介绍设计模式的使用&#xff0c;相较于其它那些只会以披萨、厨师为例的设计模式书籍是有些进步。但这书有时候为了使用设计模式而强行朝着对应的 UML 图来设计类结构&#xff0c;并且对设计理念缺少…...

基于Linphone android sdk开发Android软话机

1.Linphone简介 1.1 简介 LinPhone是一个遵循GPL协议的开源网络电话或者IP语音电话&#xff08;VOIP&#xff09;系统&#xff0c;其主要如下。使用linphone&#xff0c;开发者可以在互联网上随意的通信&#xff0c;包括语音、视频、即时文本消息。linphone使用SIP协议&#…...

[论文分享]TimeDRL:多元时间序列的解纠缠表示学习

论文题目&#xff1a;TimeDRL: Disentangled Representation Learning for Multivariate Time-Series 论文地址&#xff1a;https://arxiv.org/abs/2312.04142 代码地址&#xff1a;暂无 关键要点&#xff1a;多元时间序列&#xff0c;自监督表征学习&#xff0c;分类和预测 摘…...

分享一个好看的vs主题

最近发现了一个很好看的vs主题&#xff08;个人认为挺好看的&#xff09;&#xff0c;想要分享给大家。 主题的名字叫NightOwl&#xff0c;和vscode的主题颜色挺像的。操作方法也十分简单&#xff0c;首先我们先在最上面哪一行找到扩展。 然后点击管理扩展&#xff0c;再搜索栏…...

什么是云呼叫中心?

云呼叫中心作为一种高效的企业呼叫管理方案&#xff0c;越来越受到企业的青睐&#xff0c;常被用于管理客服和销售业务。那么&#xff0c;云呼叫中心到底是什么&#xff1f; 什么是云呼叫中心&#xff1f; 云呼叫中心是一种基于互联网的呼叫管理系统&#xff0c;与传统的呼叫…...

还在用nvm?来试试更快的node版本管理工具——fnm

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热衷分享有趣实用的文章&#xff0c;希望大家多多支持&#xff0c;一起进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 目录 什么是node版本管理 常见的node版本管理工具 fnm是什么 安装fnm …...

【Hadoop精讲】HDFS详解

目录 理论知识点 角色功能 元数据持久化 安全模式 SecondaryNameNode(SNN) 副本放置策略 HDFS写流程 HDFS读流程 HA高可用 CPA原则 Paxos算法 HA解决方案 HDFS-Fedration解决方案&#xff08;联邦机制&#xff09; 理论知识点 角色功能 元数据持久化 另一台机器就…...

企业需要哪些数字化管理系统?

企业需要哪些数字化管理系统&#xff1f; ✅企业引进管理系统肯定是为了帮助整合和管理大量的数据&#xff0c;从而优化业务流程&#xff0c;提高工作效率和生产力。 ❌但是&#xff0c;如果各个系统之间不互通、无法互相关联数据的话&#xff0c;反而会增加工作量和时间成本…...

【vue】开发常见问题及解决方案

有一些问题不限于 Vue&#xff0c;还适应于其他类型的 SPA 项目。 1. 页面权限控制和登陆验证页面权限控制 页面权限控制是什么意思呢&#xff1f; 就是一个网站有不同的角色&#xff0c;比如管理员和普通用户&#xff0c;要求不同的角色能访问的页面是不一样的。如果一个页…...

飞天使-k8s知识点3-卸载yum 安装的k8s

要彻底卸载使用yum安装的 Kubernetes 集群&#xff0c;您可以按照以下步骤进行操作&#xff1a; 停止 Kubernetes 服务&#xff1a; sudo systemctl stop kubelet sudo systemctl stop docker 卸载 Kubernetes 组件&#xff1a; sudo yum remove -y kubelet kubeadm kubectl…...

ZooKeeper 集群搭建

文章目录 ZooKeeper 概述选举机制搭建前准备分布式配置分布式安装解压缩并重命名配置环境配置服务器编号配置文件 操作集群编写脚本运行脚本搭建过程中常见错误 ZooKeeper 概述 Zookeeper 是一个开源的分布式服务协调框架&#xff0c;由Apache软件基金会开发和维护。以下是对Z…...

Meson:现代的构建系统

Meson是一款现代化、高性能的开源构建系统&#xff0c;旨在提供简单、快速和可读性强的构建脚本。Meson被设计为跨平台的&#xff0c;支持多种编程语言&#xff0c;包括C、C、Fortran、Python等。其目标是替代传统的构建工具&#xff0c;如Autotools和CMake&#xff0c;提供更简…...

【大模型AIGC系列课程 5-2】视觉-语言大模型原理

重磅推荐专栏: 《大模型AIGC》;《课程大纲》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经验分享,旨在…...

震惊!难怪别人家的孩子越来越聪明,原来竟是因为它

前段时间工作调动给孩子换了个新学校&#xff0c;刚开始担心她不能适应新学校的授课方式&#xff0c;但任课老师对她评价很高&#xff0c;夸她上课很专注。 为了训练孩子的专注力&#xff0c;作为家长可没少下功夫&#xff0c;画画&#xff0c;下五子棋等益智游戏的兴趣班没少…...

Linux操作系统(UMASK+SUID+SGID+STICK)

UMASK反掩码 如何查看反掩码&#xff1a;直接在终端窗口运行 umask root用户反掩码&#xff1a;0022 普通用户反掩码&#xff1a;0002 UMASK的作用&#xff1a;确定目录&#xff0c;文件的缺省权限值 以root身份创建目录&#xff0c;观察目录的9位权限值 以root身份创建普通文件…...

Java 中单例模式的常见实现方式

目录 一、什么是单例模式&#xff1f; 二、单例模式有什么作用&#xff1f; 三、常见的创建单例模式的方式 1、饿汉式创建 2、懒汉式创建 3、DCL&#xff08;Double Checked Lock&#xff09;双检锁方式创建 3.1、synchronized 同步锁的基本使用 3.2、使用 DCL 中存在的疑…...

【C语言】自定义类型之联合和枚举

目录 1. 前言2. 联合体2.1 联合体类型的声明2.2 联合体的特点2.3 相同成员的结构体和联合体对比2.4 联合体大小的计算2.4 判断当前机器的大小端 3. 枚举3.1 枚举类型的声明3.2 枚举类型的优点3.3 枚举类型的使用 1. 前言 在之前的博客中介绍了自定义类型中的结构体&#xff0c;…...

使用Mosquitto/python3进行MQTT连接

一、简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上&#xff0c;是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议&#xff0c;为此&#xff0c;它需要一个消息中间件。 …...

JavaWeb笔记之前端开发HTML

一、引言 1.1HTML概念 网页&#xff0c;是网站中的一个页面&#xff0c;通常是网页是构成网站的基本元素&#xff0c;是承载各种网站应用的平台。通俗的说&#xff0c;网站就是由网页组成的。通常我们看到的网页都是以htm或html后缀结尾的文件&#xff0c;俗称 HTML文件。 …...

福建省建建设行业信用评分网站/无锡优化网站排名

侧滑菜单有很大的坑&#xff0c;根据网友的描述&#xff0c;在苹果上正常&#xff0c;安卓上不能用。并且社区里很多人提了问题都没得回复。目前最有效的方法只能修改源码&#xff0c;增加window.h5pullDown的判断。在引入mui前添加一个全局变量var h5pullDown true;方案一我是…...

做购物网站需要什么/长沙服务好的网络营销

目录HarmonyOS实战创建4*4的卡片实现4*4博文列表博文卡片的定义博文信息的获取卡片交互跳转到博文编辑替换卡片内容其他配置HarmonyOS实战 目前&#xff0c;CSDN官方App并没有适配鸿蒙系统&#xff0c;但是我们是程序员&#xff0c;完全可以自己开发&#xff0c;何须等待CSDN呢…...

王野天图片/欧美seo查询

FPGA图像加速解决方案来了参考文章&#xff1a; &#xff08;1&#xff09;FPGA图像加速解决方案来了 &#xff08;2&#xff09;https://www.cnblogs.com/alifpga/p/9285759.html 备忘一下。...

电脑做网站怎么解析域名/网页开发

我们可以使用UIWebView加载包含HTML标签以及样式但是后台返回HTML只是HTML的一部分包含HTML标签的文字内容加载到UILable 或者 UITextView中的text中今日&#xff0c;GMIC 2016正式在北京开幕&#xff0c;开幕仪式上&#xff0c;中关村发展集团总经理周云帆作了致辞演讲&#x…...

展示型网站/广告免费推广网

Table of Contents 重试机制重试的必要性重试前提重试策略重试策略分析二进制指数退避策略二进制指数退避策略实操过程二进制指数退避策略原理Q&A附录 重试机制 本文介绍系统设计中&#xff0c;常见的重试机制。重点介绍二进制指数规避策略&#xff0c;从原理至实操&…...

网站技术维护/网页在线代理翻墙

http://www.tuicool.com/articles/FRfMni2 http://docs.opencv.org/3.1.0/d7/d9f/tutorial_linux_install.html#gsc.tab0 http://blog.csdn.net/asongsongsong/article/details/52122504...