|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。二进制|数据以下源代码为一个文件
<%
playxp,Email:playxp@sohu.com有成绩请与我接洽
功效:纯asp分别FORM数据中的二进制文件和文本数据(撑持中文)。
利用办法:将此文件包括在处置form的asp文件中,利用GetValue(name)来读取表单中各个元素的值。
注重:必定不要利用request.form来读取数据。
在尽年夜数的撑持asp的主页空间仅能利用无限的组件,不克不及利用上传组件,而内置的Request工具又不
撑持读取二进制文件,因而利用该文件能够办理上传文件坚苦的弊端,但在功能上却年夜打扣头。本程序参考了网上的一些代码。
由GBK向UNICODE转换
FunctionGBToU(BinStr,byteNum)
GBToU=""
Forj=1TobyteNum
gbcode1=AscB(MidB(BinStr,j,1))
Ifgbcode1>&H80Then
gbcode2=AscB(MidB(BinStr,j+1,1))
a=gbcode1-&H81
b=gbcode2-&H40
Ifgbcode2>&H7fThenb=b-1
GBToU=GBToU&ChrW(GB2U(a*190+b))GB2U为转换表
j=j+1
Else
GBToU=GBToU&ChrW(AscB(MidB(BinStr,j,1)))
EndIf
Next
EndFunction
失掉界限字符串
boundary=Mid(Request.ServerVariables("CONTENT_TYPE"),31)
Form中数据的字节数
byteCount=Request.TotalBytes
Form中的二进制数据
binRead=Request.BinaryRead(byteCount)
界限ASCII字符串
endStr=ChrB(13)&ChrB(10)&ChrB(45)&ChrB(45)
Fori=1ToLen(boundary)
endStr=endStr&ChrB(AscB(Mid(boundary,i,1)))
Next
DimFormValue(31,3)
DimbyteI字节指针
E=0
byteI=37+Len(boundary)第一个元素数据入手下手处
DoWhilebyteI<byteCount
IfAscB(MidB(binRead,byteI,1))=110Then元素数据存在
FormValue(E,0)=""
FormValue(E,1)=""
FormValue(E,2)=""
FormValue(E,3)=""
byteI=byteI+6名字入手下手处
nameStart=byteI
byteI=InStrB(byteI,binRead,ChrB(34))名字停止处
nameLen=byteI-nameStart名字长度
FormValue(E,0)=GBToU(MidB(binRead,nameStart,nameLen),nameLen)读进名字
IfAscB(MidB(binRead,byteI+1,1))=13Then元素为文本
byteI=byteI+5文本数据入手下手处
dataStart=byteI
byteI=InStrB(byteI,binRead,endStr)文本数据停止处
dataLen=byteI-dataStart文本数据长度
FormValue(E,1)=GBToU(MidB(binRead,dataStart,dataLen),dataLen)读进文本数据
Else元素为文件
byteI=byteI+13路径入手下手处
pathStart=byteI
byteI=InStrB(byteI,binRead,ChrB(34))路径停止处
pathLen=byteI-pathStart
FormValue(E,2)=GBToU(MidB(binRead,pathStart,pathLen),pathLen)读进路径
byteI=byteI+17文件范例入手下手
typeStart=byteI
byteI=InStrB(byteI,binRead,ChrB(13))文件范例停止处
typeLen=byteI-typeStart文件范例长度
FormValue(E,3)=GBToU(MidB(binRead,typeStart,typeLen),typeLen)读进文件范例
byteI=byteI+4文件数据入手下手处
dataStart=byteI
byteI=InStrB(byteI,binRead,endStr)文件数据停止处
dataLen=byteI-dataStart文件数据长度
FormValue(E,1)=MidB(binRead,dataStart,dataLen)读进文件数据
EndIf
byteI=byteI+38+Len(boundary)移向下一元素数据入手下手处
E=E+1
Else
ExitDo
EndIf
Loop
依据元素名来检索元素数据
假如表单位素为文本数据间接前往其值
假如表单位素为二进制数据文件,则前往一3元素数组,第一个元素为文件的二进制数据,
第二个元素为文件的路径,第三个为文件的范例。
FunctionGetValue(name)
Fori=0To31
IfStrComp(FormValue(i,0),name,1)=0Then
IfFormValue(i,3)=""Then
GetValue=FormValue(i,1)
Else
GetValue=Array(FormValue(i,1),FormValue(i,2),FormValue(i,3))
EndIf
ExitFunction
EndIf
Next
GetValue=Null
EndFunction
%>
</p>ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。 |
|