formsize=request.totalbytes()
formdata=request.binaryread(formsize)
dataheader=leftb(formdata,instrb(formdata,chrb(13)&chrb(10)))
strfiledata=midb(formdata,lenb(dataheader),lenb(formdata)-lenb(dataheader)*2-3)
headerpos2=instrb(strfiledata,chrb(ascb("-"))&chrb(ascb("t"))&chrb(ascb("y"))&chrb(ascb("p"))&c
hrb(ascb("e")))
headerpos3=instrb(headerpos2,strfiledata,chrb(13))
dataheader2=leftb(strfiledata,headerpos3+4)
strfiledata=midb(strfiledata,lenb(dataheader2),lenb(strfiledata))
response.binarywrite(strfiledata)
dataheader–文件头
strfiledata–去处文件头后的数据,最后的输出值
headerpos2–content-type:的位置
headerpos3–例如:content-type:image/gif的位置
dataheader2–整个前面的文件头
思想:
1。先直接去掉文件头和尾(例如—————————–7d230d1f940277)
2。跳过前面所有信息直接查找content-type:image/gif
3。提取有用的信息和字段
4。数据都提出来了至于怎么保存就简单了。至于用fso或adodb.stream就随你了。
问题:
有人可能会讲一个表单不可能只有一个file
这样的话你的数据就不能用这么简单的办法正常提取了
其实也好办你把他们分开做不就就完了:)
下面是完整实例
uup.htm
uup.asp
formsize=request.totalbytes()
formdata=request.binaryread(formsize)
dataheader=leftb(formdata,instrb(formdata,chrb(13)&chrb(10)))
strfiledata=midb(formdata,lenb(dataheader),lenb(formdata)-lenb(dataheader)*2-3)
headerpos2=instrb(strfiledata,chrb(ascb("-"))&chrb(ascb("t"))&chrb(ascb("y"))&chrb(ascb("p"))&c
hrb(ascb("e")))
headerpos3=instrb(headerpos2,strfiledata,chrb(13))
dataheader2=leftb(strfiledata,headerpos3+4)
strfiledata=midb(strfiledata,lenb(dataheader2),lenb(strfiledata))
response.binarywrite(strfiledata)
%>