(一)SmartUpload组件简介

SmartUpload组件
专门用于实现文件上传及下载的免费组件
 
(二)SmartUpload组件特点
使用简单:编写少量代码,完成上传下载功能
能够控制上传内容
能够控制上传文件的大小、类型
缺点:目前已停止更新服务

(三)SmartUpload组件应用条件

File类及方法

SmartUpload类及方法
 

文件上传的实现

控制上传文件的类型

控制上传文件的大小

注意:

㈠ 表单要求

对于上传文件的FORM表单,有两个要求:

1、METHOD应用POST,即METHOD="POST"。

2、增加属性:ENCTYPE="multipart/form-data"

案例:下面是一个用于上传文件的FORM表单的例子:

表单页面indes.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>SmartUpload</title> </head> <body>
<form action="doupload.jsp" method="post" enctype="multipart/form-data">
姓名:<input type="text" name="username" /><br/>
密码:<input type="text" name="pwd" /><br/>
文件1:<input type="file" name="file1" /><br/>
文件2:<input type="file" name="file2" /><br/>
文件3:<input type="file" name="file3" /><br/>
文件4:<input type="file" name="file4" /><br/>
文件5:<input type="file" name="file5" /><br/>
文件6:<input type="file" name="file6" /><br/>
文件7:<input type="file" name="file7" /><br/>
<input type="submit" />
</form>
</body>
</html>

处理表单页

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.jspsmart.upload.SmartUpload"%>
<%@page import="com.jspsmart.upload.File"%>
<% //----处理上传文件
/*
使用smartupload
1、添加组件jar包至WEB-INF/lib包中
2、设置form表单的提交类型为二进制类型
*/ //创建smartupload组件
SmartUpload su = new SmartUpload(); //初始化组件上下文
su.initialize(pageContext); //设置编码
su.setCharset("utf-8");
try{ //允许上传的文件类型
//su.setAllowedFilesList("doc"); //限制上传文件的类型
//su.setDeniedFilesList("bat"); //限制上传文件的大小
//su.setMaxFileSize(2000); //上传文件
su.upload();
}catch(Exception e){
%>
<script type="text/javascript">
alert("不允许上传:bat,exe,jsp,html,htm,java,class文件类型");
location.href="index.jsp";
</script>
<%
} out.println("上传"+su.save("upload\\")+"个文件成功!!!"); //得到表单项
String name = su.getRequest().getParameter("username");
String pwd = su.getRequest().getParameter("pwd"); /*
实现多文件上传
*/
for(int i = 0; i < su.getFiles().getCount(); i++){ //获取单个文件
File file = su.getFiles().getFile(i); //判断当前file是否选择了文件;如果没有则继续
if(file.isMissing())continue; //设置上传服务器的位置
String path = "upload\\"; //得到上传文件的名称
String filename = file.getFileName(); //上传文件的路径
path = path + filename; //保存文件
file.saveAs(path,SmartUpload.SAVE_VIRTUAL); out.println("<table border=1>");
out.println("<tr><td>姓名:</td><td>"+name+"</td></tr>");
out.println("<tr><td>密码:</td><td>"+pwd+"</td></tr>");
out.println("<tr><td>上传的文件名称(filename):</td><td>"+filename+"</td></tr>");
out.println("<tr><td>上传的文件表单项名称(fliedname):</td><td>"+file.getFieldName()+"</td></tr>");
out.println("<tr><td>上传的文件的大小(长度)(size):</td><td>"+file.getSize()+"</td></tr>");
out.println("<tr><td>上传的文件的扩展名(ext):</td><td>"+file.getFileExt()+"</td></tr>");
out.println("</table><br/>"); } %>

最新文章

  1. HTTP压力测试工具
  2. Win10/UWP新特性—Drag&amp;Drop 拖出元素到其他App
  3. [Computer structure] Written Notes
  4. Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录
  5. SQL Server 基础:Join用法
  6. php整理(一):变量和字符串
  7. Java源代码分析与生成
  8. ADO数据库链接
  9. testNg自动化,读取excel的数据
  10. linux网编 静态链接库
  11. ASP.Net Core2.1中的HttpClientFactory系列一:HttpClient的缺陷
  12. Unity3D之通过C#使用Advanced CSharp Messenger
  13. Redhat Linux网卡配置与绑定
  14. jsp学习之包含——include
  15. Resnet小记
  16. 洛谷P2698 花盆Flowerpot【单调队列】
  17. Received non-all-whitespace CHARACTERS or CDATA event in nextTag(). ,无法整齐打印验证错误。 解析XML文档出现的问题
  18. python 开发在线音乐播放器-简易版
  19. Supervisor安装与配置(非守护进程管理工具)
  20. 【星云测试】Wings-让单元测试智能全自动生成

热门文章

  1. Keil-MDK编译完成后代码大小
  2. Atcoder Code Festival 2017 qual C 10.22 D题题解
  3. 解决git pull每次提示输入账号密码的问题
  4. Python 4 循环语句while
  5. C - Reading comprehension 二分法 求等比数列前N项和
  6. Java下用Jackson进行JSON序列化和反序列化(转)
  7. Clojure:两步发送iOS推送通知(apns)
  8. 正则表达式,字符串中需要两个反斜杠“\\d”
  9. 写一个android内置android程序
  10. luogu1026 统计单词个数