一、ckeditor
当我们在添加新闻时,输入内容的地方可以进行美化,比如输入一些特殊符号、表情包,对字体的大小和颜色编辑等。那么我们就可以使用到一些富文本编辑器,这里就给大家讲一下关于ckeditor的使用。可以直接在百度上搜索“ckeditor”,然后点进官方的网站,
点进去之后就是这个样子的页面:
官方一般首推最新版,但是小编建议用ckeditor4最为妥当,因为较为稳定,所以我们沿着这个页面继续往下面滑动,找到ckeditor4,如下图:
画了红色横线的地方就是第四版的,我们点进去之后,里面就会有下载步骤以及注意事项:
官方推荐我们最好下载标准版哦~下载之后就是这样一个安装包:
紧接着呢,就有使用步骤,把它整体复制到你得项目中去,再导入即可使用:
编辑器 大概就是长这样了:
你学废了吗?
二、smartupload
使用SmartUpload实现文件上传功能,
1、SmartUpload组件 :专门用于实现文件上传及下载的免费组件
SmartUpload组件特点 :
使用简单:编写少量代码,
完成上传下载功能
能够控制上传内容
能够控制上传文件的大小、类型
缺点:目前已停止更新服务
2、环境准备
使用SmartUpload组件需要在项目中引入jspsmartupload.jar文件:
将jspsmartupload.jar 添加到WEB-INF\lib目录下
需要设置表单的enctype属性:
<form enctype="multipart/form-data" method="post">
(设置了enctype属性后, 表单必须以post方式提交)
3、File类
封装了单个上传文件所包含的所有信息
常用方法:
方法名称 | 说 明 |
saveAs(String destFilePathName) | 将文件保存,参数destFilePathName是保存的文件名 |
isMissing( ) | 判断用户是否选择了文件,即对应表单项是否为空,返回值为boolean类型 |
public String getFieldName( ) | 获取表单中当前上传文件所对应的表单项的名称 |
public String getFileName( ) | 获取上传文件的文件名称,不包含路径 |
4、Files类
封装了所有上传文件的信息集合
常用方法:
属性名称 | 说 明 |
public int getCount() | 取得文件上传的数目 |
public File getFile(int index) | 取得指定位置的File文件对象 |
public long getSize() | 取得上传文件的总长度 |
public Collection getCollection() | 将所有上传文件对象以Collection的形式返回 |
5、SmartUpload类
属性名称 | 说 明 |
public final void initialize(PageContext pageContext) | 执行上传和下载的初始化工作,必须实现 |
public void upload() | 实现文件数据的上传,在initialize方法后执行 |
public int save(String pathName) | 将全部上传文件保存到指定的目录下,并返回保存的文件个数 |
public void setAllowFilesList(String ExtList) | 指定允许上传的文件扩展名,接收一个扩展名列表,以逗号分隔 |
public void setDeniedFilesList( String fileList) | 指定了禁止上传的文件扩展名列表,每个扩展名之间以逗号分隔 |
public void setMaxFileSize(long filesize) | 设定每个文件允许上传的最大长度 |
public void setTotalMaxFileSIze(long totalfilesize) | 设定允许上传文件的总长度 |
6、编写上传文件处理页uploadManage.jsp
<%@page import="com.jspsmart.upload.SmartUpload"%>
<%@page import="com.jspsmart.upload.Files"%>
<%@page import="com.jspsmart.upload.Request"%>
<%@page import="com.jspsmart.upload.File"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//实现文件上传
//①单文件上传
//--自动获取web项目的根目录
//实例化
SmartUpload su=new SmartUpload();
//初始化 pageContext属于九大内置对象之一 作用域仅限于当前页面
su.initialize(pageContext);
//设置相关要求
su.setCharset("utf-8");//编码方式
su.setAllowedFilesList("jpg,png,gif,jpeg");//允许文件上传类型列表
su.setDeniedFilesList("exe,jsp,bat");//禁止上传文件类型列表
//上传到服务器内存
su.upload();
//定义上传到服务器硬盘的文件夹
String path="images/";
//获取第1个文件
File file=su.getFiles().getFile(0);
//判断是否选择了文件
if(!file.isMissing()){//说明选择了
file.setCharset("utf-8");//设置文件的编码方式
path+=file.getFileName();//拼接上原有的文件名 images/2.gif
file.saveAs(path, SmartUpload.SAVE_VIRTUAL);//自动找web项目的根目录
}
//把path保存到数据库中对应列即可
out.print(path);
//--手动获取web项目的根目录
//先找到web项目的根目录 D:\T280\javaweb\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\s6\
String webPath=this.getServletContext().getRealPath("/");
String path="images/";
//获取第一个文件
File file=su.getFiles().getFile(0);
if(!file.isMissing()){
file.setCharset("utf-8");//设置文件的编码方式
path+=file.getFileName();//拼接原有文件名 images/3.gif
file.saveAs(webPath+path);//完整路径
}
//把path保存到数据库中对应列即可
out.print(path);
//建议在上传文件之后再取表单其他值
//获取request对象
Request req=su.getRequest();
String name=req.getParameter("iname");
out.print("<br/>取到了:"+name);
//②多文件上传
//拿到所有的文件
Files fs=su.getFiles();
//拿到上传的总数目
int n=fs.getCount();
//循环
for(int i=0;i<n;i++){
//依次获取每一个文件 依次进行上传
File file=fs.getFile(i);
String path="images/";
//判断是否选择了文件
if(!file.isMissing()){//说明选择了
file.setCharset("utf-8");//设置文件的编码方式
path+=file.getFileName();//拼接上原有的文件名 images/2.gif
file.saveAs(path, SmartUpload.SAVE_VIRTUAL);//自动找web项目的根目录
}
out.print(path+"<br>");
}
%>
好啦,今天分享到此结束,下期见~