首先,在讲SmartUpload应用前,我讲一个简单实用的文件编辑器(编辑器可以调节字体大小、样式、颜色以及插入表情图标等功能)。
文件编辑器——如图所示:1-1
设置文件编辑器步骤:
1、复制fckeditor包到项目。
1-2
没有的话,搜索jquery插件库,查询文件编辑器,就可以查找到各种类型的文件编辑器。
如图所示(为jQuery插件库的官网):1-3
2、将jar包放入WEB-INF下的lib中(图1-2中的3个jar文件)
3、导入引用代码。
<%@taglib prefix="fc" uri="http://java.fckeditor.net" %>
prefix:标签 prefix="(可自定义)"
主要代码:效果图为1-1
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="fc" uri="http://java.fckeditor.net" %>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="doindex.jsp">
<fc:editor instanceName="str"></fc:editor>
<input type="submit" value="提交">
</form>
</body>
</html>
关于SmartUpload,首先介绍一下:
SmartUpload组件 :专门用于实现文件上传及下载的免费组件
SmartUpload组件特点:
使用简单:编写少量代码,完成上传下载功能;能够控制上传内容 ;
能够控制上传文件的大小、类型
缺点:目前已停止更新服务
SmartUpload使用步骤:
1、在项目中引入jspsmartupload.jar文件(导包)
2、设置表单的enctype属性
<form action="xx.jsp" enctype="multipart/form-data" method="post">
</form>
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) | 设定允许上传文件的总长度 |
File类:
1、封装了单个上传文件所包含的所有信息
2、常用方法
方法名称 | 说 明 |
saveAs(String destFilePathName) | 将文件保存,参数destFilePathName是保存的文件名 |
isMissing( ) | 判断用户是否选择了文件,即对应表单项是否为空,返回值为boolean类型 |
public String getFieldName( ) | 获取表单中当前上传文件所对应的表单项的名称 |
public String getFileName( ) | 获取上传文件的文件名称,不包含路径 |
Files类:
1、封装了所有上传文件的信息集合
2、常用方法
属性名称 | 说 明 |
public int getCount() | 取得文件上传的数目 |
public File getFile(int index) | 取得指定位置的File文件对象 |
public long getSize() | 取得上传文件的总长度 |
public Collection getCollection() | 将所有上传文件对象以Collection的形式返回 |
文件上传的实现:运用了SmartUpload和File类中的方法
上传图片页面重点代码:sendFile.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta charset="UTF-8">
<title>上传图片</title>
</head>
<body>
<img alt="" src="onload/a5.gif">
<hr>
<form action="dosendFile.jsp" enctype="multipart/form-data" method="post">
<input type="file" name="myfile"><br>
<input type="submit" value="开始上传">
</form>
</body>
</html>
接收图片页面:dosendFile.jsp
<%@page import="com.jspsmart.upload.File"%>
<%@page import="com.jspsmart.upload.SmartUpload"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//创建SmartUpload对象
SmartUpload su = new SmartUpload();
//初始化
su.initialize(pageContext);
//声明一个File对象 用来接收上传的文件
File file = null;
//设置允许上传的文件类型
su.setAllowedFilesList("jpg,png,gif");
//设置不允许上传的文件类型
su.setDeniedFilesList("bat,exe,mp4");
//设置单文件大小
su.setMaxFileSize(30000);
//设置总文件大小
su.setTotalMaxFileSize(50000);
//设置编码
su.setCharset("utf-8");
//开始上传
su.upload();
//获取文件集合中的第一个文件
file = su.getFiles().getFile(0);
String filePath = "";
if (!file.isMissing()) {
//拼接文件上传到服务器的 路径
filePath = "onload/" + file.getFileName();
//上传到服务器 保存到指定路径
file.saveAs(filePath, SmartUpload.SAVE_VIRTUAL);
}
out.print("上传成功");
out.print("<img src='" + filePath + "'>");
%>
效果图:1-3