扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:杨芳 杨淑雯 来源:计算机与信息技术 2007年10月17日
关键字:
<% newline=chrB(13) & chrB(10) 'newline表示二进制的回车符 filesize=Request.TotalBytes 'filesize是上传文件的大小 filedata=Request.BinaryRead(filesize) 'filedata是上传文件的二进制数据 divider=leftB(filedata,clng(instrb(filedata,newline))-1) 'divider是分割符 %> |
Function BtoS (bstr) If not Is Null (bstr) Then for i = 0 to lenb(bstr) - 1 bchr = midb(bstr,i+1,1) If ascb(bchr)>127 Then '汉字是双字节,得两个字符一起处理 temp = temp&chr(ascw(midb(bstr, i+2, 1)&bchr)) i = i+1 Else temp = temp&chr(ascb(bchr)) End If next End If BtoS = temp End Function |
Function getdata(byval data, byval divider, final) 'data表示二进制串;divider表示分割符;final表示数据的结束位置 filename=chrb(102)&chrb(105)&chrb(108)&chrb(101)&chrb(110)&chrb(97)&chrb(109)&chrb(101)&chrb(61)&chrb(34) '字符串"filename"的二进制表示 bncrlf=chrb(13)&chrb(10) '二进制的回车符 startpos = instrb(data,divider)+lenb(divider)+lenb(bncrlf) ' 开始位置 endpos = instrb(startpos,data, divider)-lenb(bncrlf) '结束位置 part1 = midb(data, startpos, endpos-startpos) '两个分割符之间的内容 firstline = midb(part1, 1, instrb(part1, bncrlf)-1) ' 内容之前的说明段 If (instrb(firstline,filename)=0) Then '若为文本框,获得文本框字符串内容 stemp=midb(part1,instrb(part1,bncrlf&bncrlf)+lenb(bncrlf&bncrlf),lenb(part1)-instrb(part1,bncrlf&bncrlf)+lenb(bncrlf&bncrlf)) getdata=BtoS(stemp) Else '若为文件,获得文件二进制内容 Getdata=midb (part1, instrb (part1, bncrlf&bncrlf)+lenb (bncrlf&bncrlf), lenb (part1) -instrb(part1,bncrlf&bncrlf)+lenb(bncrlf&bncrlf)) End If Final=endpos End function |
<% Content=getdata (data, divider, position) %> |
<% namepos=instrrev(B2S(firstline),chr(92)) 'firstline即上面获得的说明部分数据,chr(92) 表示"/" filename=midb(firstline,namepos+1,lenb(firstline)-namepos-1) '获得文件名称 %> |
<% set str=server.CreateObject("ADODB.Stream") 'str为源数据流 str.Mode=3 '设置打开模式,3为可读可写 str.Type=1 '设置数据类型,1为二进制数据 str.Open set desc=server.CreateObject("ADODB.Stream") 'desc为目标数据流 desc.Mode=3 Desc.Type=1 desc.Open %> |
<% formdata=Request.BinaryRead(Request.TotalBytes) 'formdata为上传的所有内容 str.Write formdata ' 赋值源数据流 str.position=count-lenb(result)-2 'position指出文件的开始位置 str.copyto desc, lenb(filecotent) 'lenb(filecontent)表示文件的长度 desc.SaveToFile fullpath,2 '以fullpath指定的路径及名称保存文件 %> |
<% Desc. Close Set desc=nothing Str. Close Set STR=nothing %> |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者