透明 发表于 2015-1-16 23:32:13

ASP教程之用文本+ASP打造旧事公布体系/图片上传

楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。上传<SCRIPTRUNAT=SERVERLANGUAGE=VBSCRIPT>
FunctionGetUpload(FormData)
DimDataStart,DivStr,DivLen,DataSize,FormFieldData
分开标记串(+CRLF)
DivStr=LeftB(FormData,InStrB(FormData,str2bin(VbCrLf))+1)
分开标记串长度
DivLen=LenB(DivStr)
PosOpenBoundary=InStrB(FormData,DivStr)
PosCloseBoundary=InStrB(PosOpenBoundary+1,FormData,DivStr)
SetFields=CreateObject("Scripting.Dictionary")

WhilePosOpenBoundary>0AndPosCloseBoundary>0
name肇端地位(name="xxxxx"),加6是由于长度为6
FieldNameStart=InStrB(PosOpenBoundary,FormData,str2bin("name="))+6
FieldNameSize=InStrB(FieldNameStart,FormData,ChrB(34))-FieldNameStart(")的ASC值=34
FormFieldName=bin2str(MidB(FormData,FieldNameStart,FieldNameSize))

filename肇端地位(filename="xxxxx")
FieldFileNameStart=InStrB(PosOpenBoundary,FormData,str2bin("filename="))+10
IfFieldFileNameStart<PosCloseBoundaryAndFieldFileNameStart>PosopenBoundaryThen
FieldFileNameSize=InStrB(FieldFileNameStart,FormData,ChrB(34))-FieldFileNameStart(")的ASC值=34
FormFileName=bin2str(MidB(FormData,FieldFileNameStart,FieldFileNameSize))
Else
FormFileName=""
EndIf

Content-Type肇端地位(Content-Type:xxxxx)
FieldFileCTStart=InStrB(PosOpenBoundary,FormData,str2bin("Content-Type:"))+14
IfFieldFileCTStart<PosCloseBoundaryAndFieldFileCTStart>PosOpenBoundaryThen
FieldFileCTSize=InStrB(FieldFileCTStart,FormData,str2bin(VbCrLf&VbCrLf))-FieldFileCTStart
FormFileCT=bin2str(MidB(FormData,FieldFileCTStart,FieldFileCTSize))
Else
FormFileCT=""
EndIf

数据肇端地位:2个CRLF入手下手
DataStart=InStrB(PosOpenBoundary,FormData,str2bin(VbCrLf&VbCrLf))+4
IfFormFileName""Then
数据长度,减1是由于数据文件的存取字节数成绩(多是AppendChunk办法的成绩):
因为字节数为奇数的图像存到数据库时会往失落最初一个字符招致图像不克不及准确显现,
字节数为偶数的数据文件就不会呈现这个成绩,因而必需坚持字节数为偶数。
DataSize=InStrB(DataStart,FormData,DivStr)-DataStart-1
FormFieldData=MidB(FormData,DataStart,DataSize)
Else
数据长度,减2是由于分开标记串前有一个CRLF
DataSize=InStrB(DataStart,FormData,DivStr)-DataStart-2
FormFieldData=bin2str(MidB(FormData,DataStart,DataSize))
EndIf

创建一个Dictionary集存储Form中各个Field的相干数据
SetField=CreateUploadField()
Field.Name=FormFieldName
Field.FilePath=FormFileName
Field.FileName=GetFileName(FormFileName)
Field.ContentType=FormFileCT
Field.Length=LenB(FormFieldData)
Field.Value=FormFieldData

Fields.AddFormFieldName,Field

PosOpenBoundary=PosCloseBoundary
PosCloseBoundary=InStrB(PosOpenBoundary+1,FormData,DivStr)
Wend
SetGetUpload=Fields
EndFunction

把二进制字符串转换成一般字符串函数
Functionbin2str(binstr)
Dimvarlen,clow,ccc,skipflag
中笔墨符Skip标记
skipflag=0
ccc=""
IfNotIsNull(binstr)Then
varlen=LenB(binstr)
Fori=1Tovarlen
Ifskipflag=0Then
clow=MidB(binstr,i,1)
判别是不是中文的字符
IfAscB(clow)>127Then
AscW会把二进制的中文双字节字符高位和低位反转,以是要先把中文的上下位反转
ccc=ccc&Chr(AscW(MidB(binstr,i+1,1)&clow))
skipflag=1
Else
ccc=ccc&Chr(AscB(clow))
EndIf
Else
skipflag=0
EndIf
Next
EndIf
bin2str=ccc
EndFunction


把一般字符串转成二进制字符串函数
Functionstr2bin(varstr)
str2bin=""
Fori=1ToLen(varstr)
varchar=mid(varstr,i,1)
varasc=Asc(varchar)
asc对中笔墨符求出来的值大概为正数,
加上65536便可求出它的无标记数值
-1在呆板内是用补码暗示的0xffff,
其无标记值为65535,65535=-1+65536
其他正数顺次类推。
Ifvarasc<0Then
varasc=varasc+65535
EndIf
对中文的处置:把双字节低位和高位分隔
Ifvarasc>255Then
varlow=Left(Hex(Asc(varchar)),2)
varhigh=right(Hex(Asc(varchar)),2)
str2bin=str2bin&chrB("&H"&varlow)&chrB("&H"&varhigh)
Else
str2bin=str2bin&chrB(AscB(varchar))
EndIf
Next
EndFunction

获得文件名(往失落Path)
FunctionGetFileName(FullPath)
IfFullPath""Then
FullPath=StrReverse(FullPath)
FullPath=Left(FullPath,InStr(1,FullPath,"")-1)
GetFileName=StrReverse(FullPath)
Else
GetFileName=""
EndIf
EndFunction
</SCRIPT>
<SC</p>无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;

飘灵儿 发表于 2015-1-25 08:39:05

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

老尸 发表于 2015-1-27 06:42:35

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。

因胸联盟 发表于 2015-2-5 01:23:13

没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。

变相怪杰 发表于 2015-2-11 00:29:42

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

蒙在股里 发表于 2015-3-1 18:50:00

下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...

灵魂腐蚀 发表于 2015-3-10 22:03:39

没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。

只想知道 发表于 2015-3-17 11:09:32

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:

若天明 发表于 2015-3-24 08:24:08

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
页: [1]
查看完整版本: ASP教程之用文本+ASP打造旧事公布体系/图片上传