(一)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/>"); } %>

SmartUpload实现文件上传的更多相关文章

  1. 基于Servlet+smartUpload的文件上传

    文件上传在web应用中是非常常见的,现在我就介绍下基于servlet的文件上传,基于Struts2的文件上传可以看: 页面端代码: <%@ page language="java&qu ...

  2. SmartUpload实现文件上传时file和表单文本同时提交的问题

    JSP页面: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8 ...

  3. smartUpload组件文件上传

    public class SmartUploadServlet extends HttpServlet { public void doGet(HttpServletRequest request, ...

  4. 易买网之smartupload实现文件上传

    经过俩个星期的奋斗,易买网项目完工.在之前,实现图片的上传,走过许多弯路,原来是好多基础的知识忘记了,没把smartupload文件包添加组件jar包至WEB-INF/lib包中,在此特别重视,做下文 ...

  5. 文件上传之 MultipartFile

    利用MultipartFile(组件)实现文件上传 在java中上传文件似乎总有点麻烦,没.net那么简单,记得最开始的时候用smartUpload实现文件上传,最近在工作中使用spring的Mult ...

  6. JSP文件上传--Smartupload组件

    把smartupload.jar copy到D:\apache-tomcat-7.0.57\lib下. 创建htm上传文件:smartupload_demo01.htm 由于是上传文件,需要对表单进行 ...

  7. 文件上传--基于Spring MVC框架+SmartUpload

    这篇文章是介绍文件上传的,由于在spring MVC上实现起来和直接在servlet中写有些不同,所以特地写了一下这篇文章,关于不同点,大家可以先阅读一下上一篇文章.好了,下面直接上代码. jab包是 ...

  8. SmartUpload文件上传组件的使用教程

    在项目中使用SmartUpload组件可以进行文件的上传和下载操作 使用步骤 1.导入jar包,进行build path操作 2.编写文件上传页面,代码如下 <form action=" ...

  9. java基础篇---文件上传(smartupload组件)

    文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以保存在数据库中,本篇主要说明smartupload组件上传. 在讲解smartupload上传前,我们先来看看不使用 ...

随机推荐

  1. seleniumd对象的操作方法,属性,keys

    这是通过find方法找到的页面元素,此对象提供了多种方法,让我们可以与页面元素进行交互,例如点击.清空. 目录: 1. 方法 2. 属性 3. keys 方法 clear()清空 如果当前元素中有文本 ...

  2. centOS下安装mysql workbench详细步骤

    step0:安装mysql 在按照workbench之前,先安装mysql.指令是 yum install mysql mysql-server mysql-libs mysql-server 关于m ...

  3. 洛谷 1373 dp 小a和uim之大逃离 良心题解

    洛谷 1373 dp 这题还不算太难,,当初看的时候不是很理解题意,以为他们会选择两条不同的路径,导致整体思路混乱 传送门 其实理解题意和思路之后还是敲了不短的时间,一部分身体原因再加上中午休息不太好 ...

  4. 清北学堂模拟赛d7t3 天上掉馅饼

    题目描述小 G 进入了一个神奇的世界,在这个世界,天上会掉下一些馅饼.今天,天上会随机掉下 k 个馅饼.每次天上掉下馅饼,小 G 可以选择吃或者不吃(必须在下一个馅饼掉下来之前作出选择,并且现在决定不 ...

  5. python在Linux中安装虚拟环境,区别python2和python3,分别安装模块

    安装虚拟环境的时候遇到的问题,解决的过程很闹心,在这里简单直接的分享出来,就是为了解决问题.  安装虚拟环境(须在联网状态下) $ sudo pip install virtualenv $ sudo ...

  6. Clojure:解决selmer模板不刷新的问题

    当在REPL环境中尝试调试template的时候,会发现每次都需要重启REPL才能看到最新的变化.调查后发现,原来是每次启动REPL的时候,原来的template文件都被放到了target目录中,这样 ...

  7. 高仿QQ6.0之側滑删除

    前两天已经完毕了高仿QQ6.0側滑和优化,今天来看下側滑删除的实现吧,假设有兴趣,能够去看下之前的两篇,仿QQ6.0側滑之ViewDragHelper的使用(一)和高仿QQ6.0側滑菜单之滑动优化(二 ...

  8. 浅谈 System.Decimal 结构

    引言 我们知道,Microsoft .NET Framework 中的 System.Decimal 结构(在 C# 语言中等价于 decimal keyword)用来表示十进制数,范围从 -(296 ...

  9. 通过loosejar清理应用中冗余的jar包

    随着应用规模的逐渐增大,依赖的jar包数量也大幅添加.当中不乏多余的,用不到的jar包,占用了大量的宝贵空间.通过loosejar这个工具.便可轻松找到"滥竽充数"的jar包了~ ...

  10. Android给定坐标计算距离

    给定两点的经纬度.计算两点之间的距离.这里要注意经纬度一定要依照顺序填写 1. 利用android中的工具获得,单位是米 float[] results=new float[1]; Location. ...