JspSmartUpload实现图片上传
### JspSmartUpload 实现图片上传的关键知识点 #### 一、概述 在Web开发中,文件上传是一项常见的功能需求,特别是在需要用户提交图片等多媒体文件的场景下。JspSmartUpload是一个基于Java的库,它提供了简单易用的API来处理文件上传任务,尤其适合在JSP(Java Server Pages)环境中使用。 #### 二、JspSmartUpload 的配置与初始化 1. **创建SmartUpload对象:** ```java SmartUpload su = new SmartUpload(); ``` - 这行代码用于创建一个`SmartUpload`实例,该实例是JspSmartUpload的核心类,负责管理文件上传的所有操作。 2. **初始化SmartUpload:** ```java su.initialize(pageContext); ``` - 初始化方法`initialize`接受一个`PageContext`参数,这个参数用来获取当前页面上下文的信息,如请求和响应对象等。 - 此步骤非常重要,因为它为SmartUpload提供了必要的运行环境信息。 3. **设置最大文件大小:** ```java su.setMaxFileSize(10000); // 设置单个文件的最大大小为10KB ``` - `setMaxFileSize`方法用于限制上传文件的最大大小,单位通常是字节。 4. **设置总文件大小限制:** ```java su.setTotalMaxFileSize(20000); // 设置所有文件的总大小为20KB ``` - `setTotalMaxFileSize`方法用于限制一次上传的所有文件的总大小。 5. **设置允许上传的文件类型:** ```java su.setAllowedFilesList("doc,txt"); // 允许.doc和.txt文件上传 ``` - `setAllowedFilesList`方法可以指定允许上传的文件扩展名列表。 6. **设置禁止上传的文件类型:** ```java su.setDeniedFilesList("exe,bat,jsp,htm,html,,"); // 禁止.exe,.bat,.jsp,.htm和.html文件上传 ``` - `setDeniedFilesList`方法则用于指定禁止上传的文件扩展名列表。 7. **执行上传操作:** ```java su.upload(); ``` - 调用`upload`方法开始执行文件上传操作。 8. **保存上传文件:** ```java int count = su.save("/upload"); ``` - `save`方法用于将已上传的文件保存到服务器上的指定目录,并返回保存成功的文件数量。 #### 三、示例代码解析 1. **上传界面HTML代码 (`upload.jsp`):** - 这个页面包含了一个简单的表单,用户可以通过该表单选择文件进行上传。 - 使用`<input type="file">`标签来让用户选择文件,同时通过`action`属性指定文件上传的目标URL,即`upfile.jsp`页面。 - 表单的`enctype`属性被设置为`multipart/form-data`,这是文件上传所必需的属性。 2. **处理上传的Java代码 (`upfile.jsp`):** - 在`upfile.jsp`页面中,首先创建了`SmartUpload`对象并初始化。 - 设置文件大小限制和允许/禁止上传的文件类型。 - 调用`upload`方法执行文件上传,并使用异常处理机制确保只允许特定类型的文件上传。 - 如果上传成功,会将文件保存到指定目录,并给出相应的提示信息。 #### 四、注意事项 - 在设置文件大小限制时,需要注意单位是否正确,例如`1024 * 1024`表示1MB。 - 在实际应用中,通常还需要添加更多的错误处理逻辑,比如检查用户是否选择了文件、处理上传过程中可能出现的各种异常情况等。 - 对于安全性考虑,除了设置允许和禁止的文件类型外,还应该对上传的文件进行进一步的验证和处理,防止恶意文件上传带来的风险。 JspSmartUpload提供了一套简洁高效的API来实现文件上传的功能,开发者可以根据具体需求灵活配置各项参数,以满足不同应用场景下的文件上传需求。
(1)// 新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
// 上传初始化
su.initialize(pageContext);
// 限制每个上传文件的最大长度。
su.setMaxFileSize(10000);
// 限制总上传数据的长度。
su.setTotalMaxFileSize(20000);
// 设定允许上传的文件(通过扩展名限制),
su.setAllowedFilesList("doc,txt");
// 设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
//jsp,htm,html扩展名的文件和没有扩展名的文件。
su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
// 上传文件
su.upload();
// 将上传文件全部保存到指定目录
int count = su.save("/upload");
-
例:(1)简单实现上传
upload.jsp (上传页)
-
<html>
<head>
<title>上传的图片</title>
</head>
<body>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<form action="upfile.jsp" method="post" enctype="multipart/form-data" name="form1">
请选择上传的图片
<input type="file" name="file">
<input type="submit" name="Submit" value="上传">
</form>
</td>
</tr>
</table>
</body>
</html>
-
-
upfile.jsp (上传处理)
-
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<% @page import="com.jspsmart.upload.SmartUpload"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Insert title here</title>
</head>
<body>
<%
SmartUpload su = new SmartUpload();//事例话上传下载
su.initialize(pageContext);//初始化环境 pageContext为内置对象
su.setMaxFileSize(1024*1024);//设置最大的文件大小
su.setTotalMaxFileSize(5*1024*1024);//设置总的文件大小
剩余5页未读,继续阅读
- LLGermany2015-05-31有用,对自己有帮助。
- Dwyane_3_wade2012-10-27终于给我解决问题了,谢了
- 东方一号蓝2015-05-24很好的资源!问题成功解决!
- E-ander2015-05-26很好的资源。经测试达到我的需求,会努力学习的
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助