SmartUpload实现文件上传

 

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

%>

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。