日期:2014-05-17  浏览次数:20839 次

Ubound和InStr函数 求解
Dim MyFile,MyFileName,MyFileExt,UpFileType //第一条语句
MyFileName = Split(MyFile.FileName,".") //第二条语句
MyFileExt = MyFileName(Ubound(MyFileName)) //第三条语句
UpFileType = "jpg|jpeg|gif" //第四条语句
If InStr(UpFileType , MyFileExt) <= 0 Then  
ShowMsg "上传的文件的格式不正确" , ""

========================
MyFile.FileName是用户填写的表单传递进来的值。

我想问下上面代码中的Ubound() 和InStr() 两个函数是怎么工作的?
比如 表单传进来的 MyFile.FileName 是 1.asp;jpg (注意jpg前面只有分号,没有小数点)
接下去各变量的值分别是多少?Ubound() 和InStr() 两个函数具体是怎么工作的?

另外我想问下,能不能适当构造 MyFile.FileName的值 ,使得MyFileExt是 asp值 或能以 asp运行的值,而且能跳过if语句的检查?

------解决方案--------------------
怎么工作不知道,因为查不到源码,但作用知道。
Ubound(array)统计数组的下标,简单讲就是数组的最大下标
InStr(a,b)指返回b字符出现在a中的什么位置,如果没有就返回0

MyFileName = Split("1.asp;jpg",".") //得出MyFileName(0)="1" ; MyFileName(1)="asp;jpg"
MyFileExt = MyFileName(Ubound(MyFileName))//其实就是MyFileName(1)="asp;jpg"
InStr(UpFileType , MyFileExt)=0 //所以会提示格式不对