目录

一、富文本编辑器

1、下载富文本编辑器

2、富文本编辑器的应用

二、文件上传

文件上传必须要注意的规则:

文件上传案例

文件夹的访问


一、富文本编辑器

富文本编辑器在项目中很常见,它可以将文本,图片等信息存入数据库,再编辑一些图文混排的信息的时候很有用,比如商城项目的商品详情页,包含很多带有样式的文字和图片。

接下来我们来看看用法吧!

1、下载富文本编辑器

首先先下载好富文本编辑器,官方链接如下:

CKEditor 4 Quick Start Guidehttps://ckeditor.com/docs/ckeditor4/latest/guide/dev_installation.html

点击进入页面 根据上方提示下载好 将文件解压

解压后的文件入下:

2、富文本编辑器的应用

将解压后的文件复制到webapp文件中

3、新建一个jsp页面,看看效果

界面效果如下:

界面代码如下:

实现富文本编辑器三步骤:

  • 导入js
  • 定义文本域 文本域需要id
  • 根据id生成对应的富文本编辑器
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<%--导入js --%>
<script src="ckeditor/ckeditor.js"></script>
</head>
<body>
<h1>新闻增加界面</h1><form action="doAdd.jsp" method="post" enctype="multipart/form-data"><p><input type="text" name="title"></p><%--定义文本域 文本域需要id --%><p><textarea id="myEditor" type="text" name="content"></textarea></p><p><%--文件选择器 --%><input type="file" name="myFile"></p><button>提交</button>
</form><script>/*根据id生成对应的富文本编辑器*/CKEDITOR.replace('myEditor');
</script>
</body>
</html>

利用富文本显示器在浏览器中显示的效果

在控制台中显示的效果:

提示:实际上从index.jsp页面提交过去的数据是网页代码

doAdd.jsp代码

<%
String title=request.getParameter("title");
String content=request.getParameter("content");
System.out.print(content);
out.print(content);
%>

二、文件上传

文件上传的jar包有smartUpload 、commons fileUpload 但是smartUpload已经停止更新  所以建议使用commons fileUpload  来进行文件上传

commons fileUpload 官网链接如下:

commons-fileuploadhttps://commons.apache.org/proper/commons-fileupload/using.html

在此官网里面我们可以看到如下示例代码 我们可以进行借鉴分析

文件上传必须要注意的规则:

1、使用commons fileUpload 组件需要在项目中引入jar包。并将jar包添加到webapp/WEB-INF/lib目录下 如下如所示:

2、需要设置表单的enctype属性

3、设置了enctype属性后,表单必须以post方式提交

文件上传案例

要求:

上传的文件保存到指定磁盘文件中并且命名不重复,上传的文件后缀名要对应

界面代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<%--导入js --%>
<script src="ckeditor/ckeditor.js"></script>
</head>
<body>
<h1>新闻增加界面</h1>
<%--文件上传必须注意的规则1、必须是post2、必须是多段式表单 enctype="multipart/form-data"--%>
<form action="doAdd.jsp" method="post" enctype="multipart/form-data"><p><input type="text" name="title"></p><%--定义文本域 文本域需要id --%><p><textarea id="myEditor" type="text" name="content"></textarea></p><p><%--文件选择器 --%><input type="file" name="myFile"></p><button>提交</button>
</form><script>/*根据id生成对应的富文本编辑器*/CKEDITOR.replace('myEditor');
</script>
</body>
</html>

如何生成名字不重复?利用UUID

 如何获取普通的文本值?(中文不乱码)

通过查看源码  我们可以看到getString可以带有参数

String value = item.getString("utf-8");

处理界面的代码:

<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %>
<%@ page import="org.apache.commons.fileupload.FileItem" %>
<%@ page import="java.util.List" %>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %>
<%@ page import="java.io.File" %>
<%@ page import="java.util.UUID" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%// 通过tomcat去上传图片// 用轮子 jar 文件上传的jar// 1. smartUpload (已经停止更新n年了)// 2. commons fileUpload// 为基于磁盘的文件项创建工厂// 接收到你的图片,将图片存到电脑磁盘上DiskFileItemFactory factory = new DiskFileItemFactory();// 创建一个新的文件上传处理程序ServletFileUpload upload = new ServletFileUpload(factory);// 设置整体请求大小限制// upload.setSizeMax(1024*5);//5mb// 让处理程序去解析请求中的数据List<FileItem> items = upload.parseRequest(request);//  在List中有普通的数据,文件数据String title="";String content="";String newName="";for (FileItem item : items) {// item有可能是文件,普通数据if (item.isFormField()) {//是不是普通数据System.out.println("普通:");// title,contentString name = item.getFieldName();//表单中的nameString value = item.getString("utf-8");//对应的值System.out.println("\t"+name);System.out.println("\t"+value);//需要进行判断取值if(name.equals("title")){title=value;}if(name.equals("content")){content=value;}} else {System.out.println("文件:");//myFileString name = item.getFieldName();//表单中的nameString oldName=item.getName();//文件名字System.out.println("\t"+name);System.out.println("\t"+oldName);//生成一个新的名字: 不重复newName = UUID.randomUUID().toString().replace("-", "");//生成动态的后缀名//  a.png -> .png//  f.jpg -> .jpg//      2022040.13.5221.mp4//      [2022040,13,5221,mp4]String[] strings = oldName.split("\\.");// id.jpgnewName+="."+strings[strings.length-1];//保存到本地item.write(new File("D:\\picture\\"+newName));}}//打印一下out.println(title);out.println(content);//图片上传的本质//  自己的电脑 -> 服务器的电脑//  文件是保存在服务器?还是数据库呢?//  用户怎么区分自己的数据呢?//  1.将图片保存到硬盘中//  2.将图片的路径存到数据库//  我只要把文件夹映射到服务器中,用户就可以访问那张保存的图片//  我把文件夹映射到服务器中,它的路径是/imagesout.print("<img src='/images/"+newName+"'>");%>

文件夹的访问

概念:把文件夹映射到服务器中,让用户可以在浏览器通过文件夹映射后的路径来访问图片

首先双击服务器servers 进入如下界面 点击左下角Modules 这里你可以看到自己的当前所有模块

随后点击右边框框框起来的按钮 最后将文件夹的路径和命名设置好。(一定要保存!!!)

将服务器运行 打开浏览器

将路径改为 http://localhost:8080/images/1.png(文件中的图片)

当然除了查看图片外还可以查看动图、视频等

文件上传的效果图如下:

界面图:

提交完成后的界面:

图片显示出来的重要代码如下:

    //  我只要把文件夹映射到服务器中,用户就可以访问那张保存的图片//  我把文件夹映射到服务器中,它的路径是/imagesout.print("<img src='/images/"+newName+"'>");

最后我们找到设置的路径就可以看到上传成功的图片!!


今天的分享就到这里结束啦!!✌

以上就是关于JavaWeb富文本编辑器与文件上传的一些内容!!

JavaWeb富文本编辑器与文件上传相关推荐

  1. 富文本编辑器CKeditor文件上传下载SmartUpload插件

    目录 富文本编辑器 1.概述 2.常用富文本编辑器 3.CKeditor介绍 4.CKeditor的使用步骤 4.1 进入官网,下载full版本(这个代表的是使用全部功能,如果是simple或者sta ...

  2. Ueditor富文本编辑器修改图片上传路径

    Ueditor富文本编辑器修改图片上传路径 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/QZPHP_L 由于网站后台使用Zend framewor ...

  3. vue3中使用vue-quill富文本编辑器 重写图片上传功能

    最近开发的一个vue3+element-plus的项目,需要用到富文本编辑器,最终选择了VueQuill这一款轻便型的富文本编辑器. 说说遇到的问题:富文本编辑器的图片上传,默认是直接以base64图 ...

  4. 百度富文本编辑器ueditor支持上传mp3格式等音频文件的方法

    百度富文本编辑器ueditor算得上比较强大的了,但是有一个比较令人难受的问题,就是不支持本地上传音频文件.ueditor自带的mp3功能是直接在百度音乐里面搜索加进去的,显而易见这个不是我们想要的, ...

  5. 关于移动手机端富文本编辑器qeditor图片上传改造

    日前项目需要在移动端增加富文本编辑,上网找了下,大多数都是针对pc版的,不太兼容手机,当然由于手机屏幕小等原因也限制富文本编辑器的众多强大功能,所以要找的编辑器功能必须是精简的. 找了好久,发现qed ...

  6. edui 富文本编辑_改造百度UMeditor(UEditor-min)富文本编辑器的图片上传功能

    最近项目需要新增一个发布文章的模块,用的是百度的Ueditor富文本编辑器. 公司用的是阿里云的图片服务器,需要直接把文章中图片上传到服务器上,但是这个编辑器的上传图片是直接上传到Tomcat的根目录 ...

  7. 使用 SpringBoot + Ckeditor 富文本编辑器、图片上传

    一.前言 在一些页面中,进行 发表文章.评论等功能,都要涉及到富文本编辑器, 如 CSDN 的 markdown 编辑器 使用传统的 textarea 标签是远远满足不了需求的, 现在流行的富文本编辑 ...

  8. MVC+API 实现tinymce富文本编辑器上传图片、上传视频

    首先是要下载一个版本,这里我自己用的放到GitHub上了 https://github.com/dhgr1/tinymce 之前我试过官网的以及别的地方的,但都会报错,我也没搞清楚原因,你们可以自己去 ...

  9. vue-quill-editor富文本编辑器及图片上传到服务器

    最近在做后台管理平台,该项目是使用vue+element-ui框架,有一个界面就是关于消息推送的,在网上找了一圈,比较适合的就是vue-quill-editor富文本编辑器 1.需求完成图: 此项目就 ...

最新文章

  1. 论文: Generating Software Test Data by Evolution---自己觉得很好的句子----(1)introduction
  2. Python字符串编码坑彻底详细解决 何梁
  3. 通俗易懂!视觉slam第九部分——光流(Optical Flow)
  4. opencascade架构_基于OpenCASCADE的CAD平台分析报告
  5. iOS开发UI篇—控制器的创建
  6. 金蝶KIS专业版13.0视频教程
  7. 安利超实用的游戏unity3d场景模型素材网站
  8. linux xv命令什么意思,Linux部分命令解释(命令缩写代表什么意思)
  9. Java前方交会后方交会编程_摄影测量后方交会、前方交会程序
  10. ECU存储安全之存储器安全
  11. 音频编码之aac编码原理
  12. Libra最后的命运
  13. 【3Dprinter】3D打印机机型结构 UM、I3、Hbot等的简单介绍
  14. C++PrimerPlus 学习笔记 | 第八章 函数探幽 | 2.引用参数
  15. mysql数据库怎么导出导入表
  16. php嵌套循环太慢,php 大数组 foreach 循环嵌套的性能优化
  17. shell 阶乘,shell运算
  18. JavaScript一维数组、二维数组的深拷贝
  19. 史上最简单的虚拟机搭建软路由 NAS 家庭媒体中心
  20. 音乐评分系统MATLAB仿真

热门文章

  1. mac的vscode部分快捷键
  2. 「TikTok+独立站」营销引流超全干货
  3. Linux系统安装完成后无法使用网络的解决方法
  4. 独家! 11省/直辖市,未来三年5G“重要应用项目”建设清单汇总
  5. mysql数据库大量造数据
  6. 在线XML生成实体、json转实体、SQL转实体
  7. PID算法终于弄明白原理了,原来就这么简单
  8. SSH authorized_keys 无效问题
  9. Android 实现书籍翻页效果---番外篇之光影效果
  10. 分布式事务中的Saga模式