CKEditor实现图片上传

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
本人用的 CKEditor版本为4.3  CKEditor 配置和部署参考CKEditor4.x部署和配置
CKEditor编辑器的工具栏中初始的时候应该是这样子的,没有图片上传按钮


并且预览中有一堆火星文,可以修改相应配置删除它。
第一种方法: 打开ckeditor/plugins/image/dialogs/image.js文件,搜索“b.config.image_previewText”,(b.config.image_previewText||'')单引号中的内容全删了,注意别删多了。(由于ckeditor的很多js文件都是压缩过的,格式很难看,很容易删错,所以不推荐此种方法)
第二种方法:打开config.js文件,加入下面一句话
config.image_previewText=' '; //预览区域显示内容

下面研究图片上传
要想出现上传按钮,两种方法
第一种:还是刚才那个image.js
搜索“upload”可以找到这一段 id:'Upload',hidden:true,而我使用的4.3的是
id:"Upload",hidden:!0,反正改为false就行了,(遗憾的是此种方法对我这个版本不起作用)
第二种:打开config.js文件,加入下面一句话
config.filebrowserImageUploadUrl= "admin/UserArticleFileUpload.do"; //待会要上传的action或servlet

OK现在基本上是下面这个样子的了




上面的只是一个上传页面。也就相当于一个HTML的form表单,
要配置点击"上传到服务器上"按钮后请求的Action。已在ckeditor/config.js中配置。
就是上面的 config.filebrowserImageUploadUrl = "admin/UserArticleFileUpload.do";
可使用chrome审查元素查看代码



接下来就是action中的上传方法:

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintWriter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;public class ImgUploadAction private File upload; // 文件 private String uploadContentType; // 文件类型 private String uploadFileName; // 文件名 /**  * 图片上传  *   * @return  * @throws IOException  */ public String imgUpload() throws IOException {  // 获得response,request  HttpServletResponse response = ServletActionContext.getResponse();  HttpServletRequest request = ServletActionContext.getRequest();  response.setCharacterEncoding("utf-8");  PrintWriter out = response.getWriter();  // CKEditor提交的很重要的一个参数  String callback = request.getParameter("CKEditorFuncNum");  String expandedName = ""; // 文件扩展名  if (uploadContentType.equals("image/pjpeg")    || uploadContentType.equals("image/jpeg")) {   // IE6上传jpg图片的headimageContentType是image/pjpeg,而IE9以及火狐上传的jpg图片是image/jpeg   expandedName = ".jpg";  } else if (uploadContentType.equals("image/png")    || uploadContentType.equals("image/x-png")) {   // IE6上传的png图片的headimageContentType是"image/x-png"   expandedName = ".png";  } else if (uploadContentType.equals("image/gif")) {   expandedName = ".gif";  } else if (uploadContentType.equals("image/bmp")) {   expandedName = ".bmp";  } else {   out.println("<script type=\"text/javascript\">");   out.println("window.parent.CKEDITOR.tools.callFunction(" + callback     + ",''," + "'文件格式不正确(必须为.jpg/.gif/.bmp/.png文件)');");   out.println("</script>");   return null;  }  if (upload.length() > 600 * 1024) {   out.println("<script type=\"text/javascript\">");   out.println("window.parent.CKEDITOR.tools.callFunction(" + callback     + ",''," + "'文件大小不得大于600k');");   out.println("</script>");   return null;  }  InputStream is = new FileInputStream(upload);  //图片上传路径  String uploadPath = ServletActionContext.getServletContext().getRealPath("/img/uploadImg");  String fileName = java.util.UUID.randomUUID().toString(); // 采用时间+UUID的方式随即命名  fileName += expandedName;  File file = new File(uploadPath);  if (!file.exists()) { // 如果路径不存在,创建   file.mkdirs();  }  File toFile = new File(uploadPath, fileName);  OutputStream os = new FileOutputStream(toFile);  byte[] buffer = new byte[1024];  int length = 0;  while ((length = is.read(buffer)) > 0) {   os.write(buffer, 0, length);  }  is.close();  os.close();  // 返回"图像"选项卡并显示图片  request.getContextPath()为web项目名   out.println("<script type=\"text/javascript\">");  out.println("window.parent.CKEDITOR.tools.callFunction(" + callback    + ",'" + request.getContextPath() + "/img/uploadImg/" + fileName + "','')");  out.println("</script>");  return null; } public File getUpload() {  return upload; } public void setUpload(File upload) {  this.upload = upload; } public String getUploadContentType() {  return uploadContentType; } public void setUploadContentType(String uploadContentType) {  this.uploadContentType = uploadContentType; } public String getUploadFileName() {  return uploadFileName; } public void setUploadFileName(String uploadFileName) {  this.uploadFileName = uploadFileName; }}

config.js
CKEDITOR.editorConfig = function( config ) {     config.image_previewText=' '; //预览区域显示内容     config.filebrowserImageUploadUrl= "ImgUpload.action"; //要上传的action或servlet };

最后上传图片成功


PS:不同版本实现的方法与效果可能不太一样,只作参考。



           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
CKEDITOR粘贴图片自动上传到服务器(VUE版) 编辑器是ckeditor5,为ckeditor编辑器增加粘贴Word图片的功能,支持快捷键操作(Ctrl+V),支持多种系统:Windows,macOS,Linux,信创国产化环境,中标麒麟,银河麒麟,统信,龙芯。1.下载ckeditor5源码,注意:不是在npm中直接安装ckeditor5,在npm中直接安装的ckeditor5是已经打包好的编辑器,我们无法为其添加插件,必须下载源码添加好后再手动打包。# 构建,生成ckeditor.js,生成的ckeditor.js在build目录下。 阅读详情

相关推荐

CKEditor与Struts2集成实现图片上传功能

在Web开发中,多部分请求是一种特殊的HTTP请求,通常用于上传文件。它允许客户端将文件和其他数据一起发送到服务器。在Struts2框架中,可以通过内置的文件上传拦截器来简化多部分请求的处理。多部分请求通过内容类型发送。当用户上传文件时,浏览器将文件数据和表单数据封装在一个多部分请求体中,并通过HTTP POST请求发送到服务器。服务器端需要使用专门的解析器来解析这些数据。Struts2框架为处理多部分请求提供了拦截器。它简化了多部分请求的处理流程,自动将上传的文件封装成对象。

weixin_42300144的博客 340

openEuler服务器GPU环境配置复盘:我踩过的那些‘版本兼容’与‘依赖冲突’的坑

本文详细复盘了在openEuler服务器上配置GPU环境的实战经验,重点解决了版本兼容与依赖冲突问题。通过真实案例分享,涵盖了从驱动安装、CUDA生态版本选择到性能调优的全流程,帮助开发者避免常见陷阱,提升AI训练效率。特别适用于aarch64架构下的NVIDIA GPU环境部署。

weixin_30240349的博客 587

CKEditor图片上传功能的实现与优化

CKEditor是网页HTML编辑器领域的佼佼者,广泛应用于内容管理系统和在线论坛等。其拥有的丰富文本编辑功能、个性化定制选项和简洁的用户界面设计,使其成为开发者集成富文本编辑功能时的首选。

weixin_36289742的博客 1089

通过ckeditor组件在vue2中实现上传图片

2,下载sdk,https://ckeditor.com/ckeditor-5/online-builder/#,打开这个地址,配完就可以下载。3,启动sdk,运行npm install ,npm run build,在build文件夹下就有一个ckeditor.js。1,配置图片上传,其实就是imageUpload这个插件,首先在组件ckeditor添加属性config。直接将这个js放到我们的项目public下,通过script引入即可。5,在我们的组件中引入即可,这样上传图片就完成了,整体代码。

Heartnottowake的博客 1216

ckeditor 4 上传图片

在web/js/ckeditor/config.js配置文件中增加:(其中imageUpload是下面写的servlet的url)拿到一个项目后台用ckeditor4,根据实际需求要添加上传图片功能。4、eclipese热部署自动刷新设置。2、编写servlet处理图片上传。3、配置上传文件路径。

weixin_52517502的博客 1284

CKEditor实现图片上传以及预览

前言CKEditor其实不需要多介绍,最早之前叫FCKEditor,后面改名了,其实就是一个富文本编辑器。 The best web text editor for everyone 上面是官网首页的内容,看上去挺牛逼的,其实也是,以前富文本编辑器还不是特别多,CKEditor算是老牌中的佼佼者吧,如今选择就有很多了,比如KindEditor,百度UEditor,CKEditor算是经典吧,功能

Saytime 4万+

ckeditor 图片上传_CKeditor5实现图片上传

// 2019-3-27 更新,最初发在这里只是记录一下 CKeditor5 的发布,当时的版本还是 1.0.0-alpha.1,截止今日,已经更新为 v12.0.0,之前的一些方法已经不太兼容,特更新如下,希望能帮助到大家。CKeditor5 相比 CKeditor4 更轻量级,可以按需定制很灵活,CKeditor5 是彻头彻尾的重写,支持移动端、支持按需定制,灵活的插件机制等。CKeditor...

weixin_39724362的博客 1069

CKEditor4.3实现图片上传

本人用的CKEditor版本为4.3 CKEditor配置和部署参考CKEditor4.x部署和配置。 CKEditor编辑器的工具栏中初始的时候应该是这样子的,没有图片上传按钮

IT这个事 9720

CKEditor图片上传实现详细步骤

本人使用的CKEditor版本是3.6.3。CKEditor配置和部署我就不多说。 CKEditor的编辑器工具栏中有一项“图片域”,该工具可以贴上图片地址来在文本编辑器中加入图片,但是没有图片上传。 “预览”中有一大堆鸟语,看得很不爽。可以打开ckeditor/plugins/image/dialogs/image.js文件,搜索“b.config.image

愤怒de老鸟的专栏 1127

PHP中Ckeditor利用Ckfinder实现图片上传功能

  PHP怎么给ckeditor编辑器加上传图片的功能?CKEditor官方演示是有上传图片和浏览服务器文件功能的,但是我们自己下载回来的却没有这两个功能…… 其实还需要下载另外一个组件:CKFinder,用它配合CKEditor实现上传功能。 官方提供了PHP,Asp.Net和Asp三个语言版本的CKFinder     本文章就来详细的介绍了如何配置Ckeditor+Ckfind...

梵谷的皇心 623

CKEditor图片上传的PHP实现

编辑文章是网站后台的常用功能,CKEditor是目前流行的富文本编辑器,它使用方便但要做一些配置才能实现上传本地图片到服务器的功能。在参考了一篇java下CKEditor图片上传实现的博文后,我用PHP实现CKEditor编辑文章并支持上传本地图片的功能。 从官网http://ckeditor.com/下载CKEditor,根据需要可以选择基本,标准,完整或自定义版,我下载的是CKEditor

zaqwsx20的专栏 6356

ckeditor java 上传_java使用CKEditor实现图片上传功能

java如何使用ckeditor实现图片上传功能,具体内容如下1.根据实际需要下载指定的ckeditor2.删除文件ckeditor/plugins/image/dialogs/image.js预览框中文本内容,并修改hidden属性值为显示上传选项卡删除image.js中包含在双引号中的上述文本将image.js中的hidden属性值改为03.修改ckeditor/config.js文件,配置“...

weixin_31192609的博客 397

javaweb编辑器ckeditor配置_java使用CKEditor实现图片上传功能

java如何使用CKEditor实现图片上传功能,具体内容如下1.根据实际需要下载指定的CKEditor2.删除文件ckeditor/plugins/image/dialogs/image.js预览框中文本内容,并修改hidden属性值为显示上传选项卡删除image.js中包含在双引号中的上述文本将image.js中的hidden属性值改为03.修改ckeditor/config.js文件,配置“...

weixin_39638105的博客 160

CKEditor结合原生的servlet实现图片上传及预览

CKEditor其实不需要多介绍,最早之前叫FCKEditor,后面改名了,是一个富文本编辑器。 CKEditor4.4.6标准版下载地址: http://download.cksource.com/CKEditor/CKEditor/CKEditor 4.4.6/ckeditor_4.4.6_standard.zip 1、CKEditor的使用 在页面<head>中引入cke...

weixin_42687829的博客 773

实现CkEditor自定义图片上传功能

创建一个CkEditor插件需要精心设计其结构,以确保功能的扩展性和可维护性。插件的基本结构通常包括以下几个部分:插件主体文件:通常命名为plugin.js,它是插件的核心文件,包含了插件的初始化和API调用逻辑。插件配置文件:一个名为plugin.js的JavaScript文件,用于定义插件的配置选项。前端资源:包括样式文件(如CSS)和可能的图片资源,用于美化和优化用户界面。示例结构└── icons/按钮注册之后,需要定义当按钮被点击时触发的命令函数。

weixin_42600407的博客 470

CKEditor整合CKFinder实现图片上传功能

CKEditor 是一款功能强大的开源富文本编辑器,广泛应用于各类 Web 应用程序中。它提供了类似于 Word 的编辑体验,支持格式化文本、插入图片、链接、表格等多种内容元素。CKEditor 的核心模块包括:内容编辑区:基于 HTML 的可视化编辑界面。工具栏:支持自定义按钮与插件扩展。插件系统:通过插件实现图片上传、代码高亮等功能。CKFinder 是 CKEditor 的官方配套文件管理器,专为网页编辑器提供高效、安全的文件上传与浏览解决方案。

weixin_35636570的博客 1077
上一篇: form表单提交的几种方法
下一篇: Java中获取当前系统年份
我喜欢她地腰
博客等级 码龄8年 15粉丝 184原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值