<% response.expires=0 '目的:将二进制字符转换成普通字符 Function bin2str(binstr) Dim varlen,clow,ccc,skipflag skipflag=0 ccc = "" varlen=LenB(binstr) For i=1 To varlen If skipflag=0 Then clow = MidB(binstr,i,1) If AscB(clow) > 127 Then ccc =ccc & Chr(AscW(MidB(binstr,i+1,1) & clow)) skipflag=1 Else ccc = ccc & Chr(AscB(clow)) End If Else skipflag=0 End If Next bin2str = ccc End Function '目的:把表单中的图象数据分离出来 '其中参数formsize为表单数据大小,formdata为表单的总数据 Function ImageUp(formsize,formdata) bncrlf=chrb(13) & chrb(10) divider=leftb(formdata,instrb(formdata,bncrlf)-1) 'formdata第一个bncrlf左边的数据 datastart=instrb(formdata,bncrlf & bncrlf)+4 '两个bncrlf右边的数据的起始位 dataend=instrb(datastart+1,formdata,divider)-datastart Imageup=midb(formdata,datastart,dataend) End Function '目的:把表单中的变量值取出 '其中参数varName为要寻找的字段变量,strTXT为已从图象中分离出来的的所有文本 Function findVar(varName,strTxt) startPos=1 strLen=len(varName)+2 '表单中可能有多个同名变量(用在有主表与明细表中的数据更新中) for i=1 to len(strTXT) varStart=instr(startPos,strTXT,varName)+strLen+3 varEnd=instr(varStart,strTXT,"--")-2 varValLen=varEnd-varStart inVar=mid(strTXT,varStart,varValLen) findVar=findVar & inVar startPos=instr(varStart,strTXT,varName) if startPos=0 then exit for '如果找不到则退出循环 findVar=findVar & "," ' 以","作为多个同名变量值间的分隔符,实际上本例倒不需要 next End function FormSize = Request.TotalBytes FormData = Request.BinaryRead( FormSize ) Image = ImageUp(FormSize,Formdata) '以下两步不能省略,否则取不出文字 strTXT=mid(formdata,instr(formdata,image)+len(image)+1) '取出文字 strTXT=bin2str(strTXT) '二进制转换成普通文字 aaa=findVar("aaa",strTXT) '相当于request.form("aaa") %>