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

%>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM