SmartUpload smartupload = new SmartUpload();
......
......
java.util.Enumeration e=smartupload.getRequest().getParameterNames();
while(e.hasMoreElements()){
 String key=(String)e.nextElement();  //取表单控件名
 String[] values=smartupload.getRequest().getParameterValues(key);  //取值
}

解决方案 »

  1.   

    如果想了解上传的过程可以参考RFC1867文档.然后自己写.
      

  2.   

    基本分析:
    InputStream InData=null;
    int iSize,iLength;
    iLength=request.getContentLength();
    byte[] Buffer=new byte[iLength];
    byte[] Byte_File;
    if(iLength>0)
    {
    InData=request.getInputStream();
    String ContentType=request.getContentType();
    iSize=InData.read(Buffer);
    if(iSize!=-1)
    {
    //数据处理开始
    String FileData=new String(Buffer);

    //正则字串:"name=\"";
    //正则字串:"filename=\"";

    String strSplit=ContentType.substring(ContentType.lastIndexOf("=")+1,ContentType.length());
    String strSub[]=FileData.split(strSplit); String strElement;
    int iBegin,iEnd;
    iBegin=0;iEnd=0;
    String FieldName,FieldValue;
    int bTrue;
    bTrue=0;
    int iPos;
    iPos=0;
    int iLocation;
    iLocation=0;
    for(int iIndex=0;iIndex<strSub.length;iIndex++)
    {
    strElement=strSub[iIndex];
    iBegin=strElement.indexOf("name=\"",0);
    if(iBegin!=-1)
    {
    iEnd=strElement.indexOf("\"",iBegin+6);
    FieldName=strElement.substring(iBegin+6,iEnd);
    iBegin=strElement.indexOf("filename=\"",0);
    if(iBegin!=-1)
    {
    bTrue=1;
    }
    //
    iEnd=strElement.indexOf("\r\n\r\n",0);
    if(bTrue==1)
    {
    iLocation=0;
    iPos=FileData.indexOf("filename=\"",iPos);
    iPos=FileData.indexOf("\n",iPos)+1;
    iPos=FileData.indexOf("\n",iPos)+1;
    iPos=FileData.indexOf("\n",iPos)+1;
    iLocation=FileData.indexOf(strSplit,iPos)-4;
    FieldValue=FileData.substring(iPos,iLocation);
    byte[] Byte_File_=FieldValue.getBytes();
    Byte_File=new byte[Byte_File_.length];
    for(int kIndex=0;kIndex<Byte_File_.length;kIndex++)
    {
    Byte_File[kIndex]=Buffer[iPos+0+kIndex];
    //0:Excel
    //0:Word
    //
    }
    session.putValue(FieldName,Byte_File);
    }
    else
    {
    FieldValue=strElement.substring(iEnd+4);
    session.putValue(FieldName,FieldValue.substring(0,FieldValue.indexOf("\n")-1));
    }
    bTrue=0;
    }
    }
    //数据处理结束
                      }
             }