0
点赞
收藏
分享

微信扫一扫

Javaweb10(富文本编辑器和文件上传)

墨香子儿 2022-04-13 阅读 76
java

富文本编辑器

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

(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 getFileint 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>");
		}
%>
举报

相关推荐

0 条评论