• 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/>");
            
        }
    
    %>
  • 相关阅读:
    JQ 选择器大全
    .NET SOCKET通信编程
    .Net中的Socket通讯
    SQL Server 2008中新增的变更数据捕获(CDC)和更改跟踪
    C# 编写Window服务基础(一)
    更改windows服务的配置文件app.config
    SQLServer数据库表中将指定列分组转一行
    在c#中使用mongo-csharp-driver操作mongodb
    java 线程池的原理
    Java并发编程:ThreadLocal的使用以及实现原理解析
  • 原文地址:https://www.cnblogs.com/wlx520/p/4515784.html
Copyright © 2020-2023  润新知