仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 526|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网站制作之多个表单和多个图片一同上传完善办理方...

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:33:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的办理|上传upload.inc
<!--------------------->
<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是由于[name="]长度为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>
<SCRIPTRUNAT=SERVERLANGUAGE=JSCRIPT>
functionCreateUploadField(){returnn</p>ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了.关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用
蒙在股里 该用户已被删除
沙发
发表于 2015-1-19 16:26:35 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
海妖 该用户已被删除
板凳
发表于 2015-1-24 14:09:59 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
小魔女 该用户已被删除
地板
发表于 2015-1-26 18:04:04 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
不帅 该用户已被删除
5#
发表于 2015-1-31 15:41:59 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
透明 该用户已被删除
6#
发表于 2015-2-6 20:12:46 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
冷月葬花魂 该用户已被删除
7#
发表于 2015-2-18 13:06:28 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-12 21:53:51 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
金色的骷髅 该用户已被删除
9#
发表于 2015-3-20 03:32:25 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 05:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表