富文本编辑器
富文本编辑器在项目中很常见,他可以将文本,图片等信息存入数据库,在编辑一些图文混排的信息的时候很有用,比如商城项目的商品详情页,包含很多带有样式的文字和图片
(1)可以自己去官网下载,下载之后把文件复制到我们的webContent下面,以ckeditor为例
(2)调用这个富文本 在文本域中
<p>
<label> 内容 </label>
<textarea name="ncontent" cols="70" rows="10"></textarea>
<script>
CKEDITOR.replace('ncontent');
</script>
</p>
SmartUpload 组件介绍
(1)SmartUpload组件是专门用于实现文件上传及下载的免费组件
(2)SmartUpload组件特点:
a、使用简单:边写少量代码,完成上传下载功能
b、能够控制上传内容
c、能够控制上传文件的大小、类型
d、缺点:目前已通知更新服务
(3)SmartUpload组件应用条件:
a、环境准备
1.使用SmartUpload组件需要在项目中引入jspsmartupload.jar文件,将jspsmartupload.jar添加到WEB-INF\lib目录下
2.需要设置表单的enctype属性
注意:设置了enctype属性后,表单必须以post方式提交
(4)File类及方法
File类封装了单个上传文件所包含的所有信息和常用方法
方法名称 | 说 明 |
saveAs(String destFilePathName) | 将文件保存,参数destFilePathName是保存的文件名 |
isMissing( ) | 判断用户是否选择了文件,即对应表单项是否为空,返回值为boolean类型 |
public String getFieldName( ) | 获取表单中当前上传文件所对应的表单项的名称 |
public String getFileName( ) | 获取上传文件的文件名称,不包含路径 |
(5)封装了所有上传文件的信息结合和常用方法
属性名称 | 说 明 |
public int getCount() | 取得文件上传的数目 |
public File getFile(int index) | 取得指定位置的File文件对象 |
public long getSize() | 取得上传文件的总长度 |
public Collection getCollection() | 将所有上传文件对象以Collection的形式返回 |
(6)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) | 设定允许上传文件的总长度 |
(7)实现文件上传
实现思路:
1.添加jspsmartupload.jar
2.在jsp文件中使用page指令导入SmartUpload类
3.调用SmartUpload组件相关类的方法获取文件信息并实现保存
文件上传
jsp提供了上传和下载功能,用户采用此功能,可以轻松实现文件的传输。下面介绍文件上传与下载的操作
用户通过一个jsp页面上传文件给服务器是,该jsp页面必须含有file类型的表单,并且表单必须将enctype的属性设置为multipart/form-data
文件上传案例:
<%@page import="com.jspsmart.upload.Files"%>
<%@page import="com.jspsmart.upload.File"%>
<%@page import="com.jspsmart.upload.SmartUpload"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//客户端的文件到低是长传到哪里去?
//A:数据库里 × 放放是文件在服务器硬盘上所对应的路径
//B:服务器硬盘上的某个文件夹里 √
//实现文件上传
//单文件上传
//--自动获取web项目的根目录
//--手动获取web项目的根目录
//实例化
SmartUpload su=new SmartUpload();
//初始化
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.getFieldName();//拼接上原有的文件名 images/1.gif
file.saveAs(path,SmartUpload.SAVE_VIRTUAL);//自动找web项目的根目录
}
//把path保存到数据库即可
out.print(path); */
//--手动获取根目录
//先找到web项目的根目录
/* String webPath=this.getServletContext().getRealPath("/");
String path="iamges/";
out.print(webPath);
//获取第1个文件
File file=su.getFiles().getFile(0);
//判断是否选择了文件
if(!file.isMissing()){
file.setCharset("utf-8");//设置文件的编码方式
path+=file.getFieldName();//拼接上原有的文件名 images/1.gif
file.saveAs(path,SmartUpload.SAVE_VIRTUAL);//自动找web项目的根目录
}
out.print(path);*/
//多文件上传
//拿到所有的文件
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.getFieldName();//拼接上原有放文件名 images/2.gif
file.saveAs(path, SmartUpload.SAVE_VIRTUAL);//自动找web项目的根目录
}
out.print(path+"<br>");
}
%>