㈠ 表单要求

 

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

 

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

 

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

 

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

 

< FORM  METHOD ="POST"  ENCTYPE ="multipart/form-data"  
ACTION ="/jspSmartUpload/upload.jsp" > 
 < INPUT  TYPE ="FILE"  NAME ="MYFILE" > 
 < INPUT  TYPE ="SUBMIT" > 
 </ FORM >

 

㈡ 上传的例子

 

1、上传页面upload.html

 

本页面提供表单,让用户选择要上传的文件,点击"上传"按钮执行上传操作。

 

页面源码如下:

 

<!-- 
    文件名:upload.html
    作  者:纵横软件制作中心雨亦奇
 --> 
 <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > 
 < html > 
 < head > 
 < title > 文件上传 </ title > 
 < meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312" > 
 </ head > 

 < body > 
 < p >   </ p > 
 < p  align ="center" > 上传文件选择 </ p > 
 < FORM  METHOD ="POST"  ACTION ="jsp/do_upload.jsp" 
ENCTYPE ="multipart/form-data" > 
 < input  type ="hidden"  name ="TEST"  value ="good" > 
   < table  width ="75%"  border ="1"  align ="center" > 
     < tr >  
       < td >< div  align ="center" > 1、 
           < input  type ="FILE"  name ="FILE1"  size ="30" > 
         </ div ></ td > 
     </ tr > 
     < tr >  
       < td >< div  align ="center" > 2、 
           < input  type ="FILE"  name ="FILE2"  size ="30" > 
         </ div ></ td > 
     </ tr > 
     < tr >  
       < td >< div  align ="center" > 3、 
           < input  type ="FILE"  name ="FILE3"  size ="30" > 
         </ div ></ td > 
     </ tr > 
     < tr >  
       < td >< div  align ="center" > 4、 
           < input  type ="FILE"  name ="FILE4"  size ="30" > 
         </ div ></ td > 
     </ tr > 
     < tr >  
       < td >< div  align ="center" > 
           < input  type ="submit"  name ="Submit"  value ="上传它!" > 
         </ div ></ td > 
     </ tr > 
   </ table > 
 </ FORM > 
 </ body > 
 </ html >
2、上传处理页面do_upload.jsp

 

本页面执行文件上传操作。页面源码中详细介绍了上传方法的用法,在此不赘述了。

 

页面源码如下:

 

 <%-- 
    文件名:do_upload.jsp
    作  者:纵横软件制作中心雨亦奇
 --%> 
 <% @ page contentType = " text/html; charset=gb2312 "  language = " java "  
 import = " java.util.*,com.jspsmart.upload.* "  errorPage = ""   %> 
 < html > 
 < head > 
 < title > 文件上传处理页面 </ title > 
 < meta http - equiv = " Content-Type "  content = " text/html; charset=gb2312 " > 
 </ head > 

 < body > 
 <% 
     //  新建一个SmartUpload对象 
     SmartUpload su  =   new  SmartUpload();
     //  上传初始化 
     su.initialize(pageContext);
     //  设定上传限制
     //  1.限制每个上传文件的最大长度。 
      su.setMaxFileSize( 10000 );
     //  2.限制总上传数据的长度。 
      su.setTotalMaxFileSize( 20000 );
     //  3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。 
      su.setAllowedFilesList( " doc,txt " );
     //  4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
     // jsp,htm,html扩展名的文件和没有扩展名的文件。 
      su.setDeniedFilesList( " exe,bat,jsp,htm,html,, " );
     //  上传文件 
     su.upload();
     //  将上传文件全部保存到指定目录 
      int  count  =  su.save( " /upload " );
    out.println(count + " 个文件上传成功!<br> " );
    
     //  利用Request对象获取参数之值 
     out.println( " TEST= " + su.getRequest().getParameter( " TEST " )
     + " <BR><BR> " );

     //  逐一提取上传文件信息,同时可保存文件。 
      for  ( int  i = 0 ;i < su.getFiles().getCount();i ++ )
     ... {
        com.jspsmart.upload.File file = su.getFiles().getFile(i);
        
        // 若文件不存在则继续
        if (file.isMissing()) continue;

        // 显示当前文件信息
        out.println("<TABLE BORDER=1>");
        out.println("<TR><TD>表单项名(FieldName)</TD><TD>"
        + file.getFieldName() + "</TD></TR>");
        out.println("<TR><TD>文件长度(Size)</TD><TD>" + 
        file.getSize() + "</TD></TR>");
        out.println("<TR><TD>文件名(FileName)</TD><TD>" 
        + file.getFileName() + "</TD></TR>");
        out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>" 
        + file.getFileExt() + "</TD></TR>");
        out.println("<TR><TD>文件全名(FilePathName)</TD><TD>"
        + file.getFilePathName() + "</TD></TR>");
        out.println("</TABLE><BR>");

        // 将文件另存
        file.saveAs("/upload/" + myFile.getFileName());
        // 另存到以WEB应用程序的根目录为文件根目录的目录下
         file.saveAs("/upload/" + myFile.getFileName(), 
        su.SAVE_VIRTUAL);
        // 另存到操作系统的根目录为文件根目录的目录下
        file.saveAs("c:\temp\" + myFile.getFileName(), 
        su.SAVE_PHYSICAL);

    } 
 %> 
 </ body > 
 </ html >

对上传的文件图片改名的代码


com.jspsmart.upload.SmartUpload upload   =   new    com.jspsmart.upload.SmartUpload();
upload.initialize(pageContext);
upload.setMaxFileSize(   10000000   );    //
   限制上传文件的大小1兆
   
   upload.upload();
   //
   上传
   
   /** */
   /********************************************************************
String strParmeter1=upload.getRequest().getParameter("Parmeter1");
********************************************************************/   
   //
   文件上传后的文件对象
   
   com.jspsmart.upload.File myFile 
   =
    upload.getFiles().getFile(
   0
   );
String strFileName    =    myFile.getFileName();
String abspath    =   request.getRealPath(   "
   /
   "
   )
   +
   "
   /uploadFiles/
   "
   +
   strFileName;
myFile.saveAs(abspath);