- 作者:zhaozj
- 发表时间:2020-12-23 10:55
- 来源:未知
<% int iTotalByte,iTotalRead,iReadByte; iTotalByte=request.getContentLength(); iTotalRead=0; iReadByte=0; byte[] Buffer=new byte[iTotalByte]; if(iTotalByte>0) { for(;iTotalRead<iTotalByte;iTotalRead+=iReadByte) { try {iReadByte=request.getInputStream().read(Buffer,iTotalRead,iTotalByte-iTotalRead); } catch(Exception e) { e.printStackTrace(); } } String strContentType=request.getContentType(); //数据处理开始 String strBuffer=new String(Buffer); %><!--<br>表单数据:<br>strBuffer<br>--><% String strBoundary="--"+strContentType.substring(strContentType.lastIndexOf("=")+1,strContentType.length()); String strArray[]=strBuffer.split(strBoundary);
String strSubString; int iBegin,iEnd; iBegin=0;iEnd=0; String strFieldName=""; String strFieldValue=""; String strFilePath=""; String strFileName=""; String strFileType=""; boolean bTrue; bTrue=false; int iLocation=0; for(int iIndex=1;iIndex<strArray.length-1;iIndex++) { strSubString=strArray[iIndex]; iBegin=strSubString.indexOf("name=/"",0); if(iBegin!=-1) { strFieldName="";strFieldValue=""; strFilePath="";strFileName="";strFileType=""; iEnd=strSubString.indexOf("/"",iBegin+6); strFieldName=strSubString.substring(iBegin+6,iEnd); iBegin=strSubString.indexOf("filename=/"",0); if(iBegin!=-1) { bTrue=true; } iEnd=strSubString.indexOf("/r/n/r/n",0); if(bTrue==true) { //文件路径 strFilePath=strSubString.substring(iBegin+10,strSubString.indexOf("/"",iBegin+10));strFileName=strFilePath.substring(strFilePath.lastIndexOf("//")+1); strFileType=strSubString.substring(strSubString.indexOf("Content-Type: ")+14,strSubString.indexOf("/r/n/r/n")); %><!--<br>文件类型:<br>strFileType<br>--><% //文件数据 iBegin=strSubString.indexOf("/r/n/r/n",iBegin); strFieldValue=strSubString.substring(iBegin+4); strFieldValue=strFieldValue.substring(0,strFieldValue.lastIndexOf("/n")-1); %><!--<br>文件路径:<br>strFilePath<br>文件名称:<br>strFileName<br>--><% byte[] pFile=strFieldValue.getBytes(); byte[] pFileExtend=new byte[pFile.length]; iLocation=strBuffer.indexOf("filename=/"",iLocation); for(int kIndex=iLocation;kIndex<iTotalByte-2;kIndex++) { if(Buffer[kIndex]==13&&Buffer[kIndex+2]==13) {iLocation=kIndex+4;break;} } for(int nIndex=0;nIndex<pFile.length;nIndex++) { pFileExtend[nIndex]=Buffer[iLocation+nIndex]; }/*//保存到Local Disk;FileOutputStream pFileOutputStream=new FileOutputStream("F://Site_App//UploadFile//"+strFileName);pFileOutputStream.write(pFileExtend);pFileOutputStream.close();*/ session.putValue(strFieldName+"_FileType",strFileType); session.putValue(strFieldName+"_FilePath",strFilePath); session.putValue(strFieldName+"_FileName",strFileName); session.putValue(strFieldName,pFileExtend); } else { strFieldValue=strSubString.substring(iEnd+4); strFieldValue=strFieldValue.substring(0,strFieldValue.lastIndexOf("/n")-1);session.putValue(strFieldName,strFieldValue); } bTrue=false; } %><!--<br>表单域名:<br>strFieldName<br>表单域值:<br>strFieldValue<br>--><% } //数据处理结束 }%>