ASP上传代码问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 14:58:02
imgsize=request.TotalBytes
imgData=request.BinaryRead(imgsize)
aa=chrB(13)&chrB(10)
Divider=leftB(imgdata,clng(instrB(imgData,aa))-1)
dstart=instrB(imgData,aa&aa)+4
如上代码dstart是截取二进制数据的开始位置,为什么这里是+4
////////////////////////////////////////
do
'分离出表单元素信息 即从开始查找位置到有两个回车符之间的信息
fend=instrb(fstart,data,tcrlf&tcrlf)+3
'初始化临时STREAM对象
tmpdata.type=1
tmpdata.mode=3
tmpdata.open
'设置指针位置
updata.position=fstart
updata.copyto tmpdata,fend-fstart'将元素表单信息复制到临时STREAM对象
fstart=instrb(fend,data,flag)-1'查找下一个分隔符所在位置
'fstart=instrb(fend,data,flag)
tmpdata.position=0
tmpdata.type=2'设置读取方式为文本
tmpdata.charset="gb2312"'设置编码方式为GB2312
tinfo=tmpdata.readtext
如上代码fend是截取二进制数据的开始位置,为什么这里是+3而不是最上面的+4了呢?
//////////////////////////////////////////////

不知道为什么,反正只有这样才正确.我也为这烦过! 哎~~~

希望你早日找到高手早日帮你解决这个问题~

+3就是到数据的前面,形象点来说,假如数据是:
0123
0是分隔,dstart就是数据开始+4正好到1,fend是找分隔的地方,不可能+4从1处来分,只能加到3.

好些N年前自己写过一个这样的程序,还略懂一下,见笑了.

aa=chrB(13)&chrB(10)

所以aa是两个字符

aa&aa当然就+4了

tcrlf是一个字符

tcrlf&tcrlf应该是+2才对