+ -
当前位置:首页 → 问答吧 → 【求助】ASP循环判断文件有效性出错

【求助】ASP循环判断文件有效性出错

时间:2011-08-03

来源:互联网

picArr=split(pic,",")       'pic为多个图片文件的名称,之间用逗号分割的
for i=0 to ubound(picArr)
  path=server.MapPath(picArr(i))
  if not CheckFileType(path) then       '判断该图片文件是否有效
    response.write("<script>alert('您上传的文件有问题!\n\n请不要上传非法文件!');<//script>")
      'fso删除文件
    response.end
  else
    '图片有效时的处理语句
  end if
next

当只上传一张图片时此程序无误,该函数也能正确判断文件的有效性。但当上传超过1张,也就是pic有多个内容时则从第2张图片处开始报错,不论该文件是否有效。。。
去掉文件有效性判断后一切正常。path值有且有效。

以下为CheckFileType函数内容
on error resume next
const adTypeBinary=1
dim jpg(1):jpg(0)=CByte(&HFF):jpg(1)=CByte(&HD8)
function CheckFileType(filename)
CheckFileType=false
filename=LCase(filename)
dim fstream,fileExt,stamp,i
fileExt=mid(filename,InStrRev(filename,".")+1)
set fstream=Server.createobject("ADODB.Stream")
fstream.Open
fstream.Type=adTypeBinary
fstream.LoadFromFile filename
fstream.position=0
select case fileExt
case "jpg","jpeg"
stamp=fstream.read(2)
for i=0 to 1
if ascB(MidB(stamp,i+1,1))=jpg(i) then CheckFileType=true else CheckFileType=false
next
end select
fstream.Close
set fseteam=nothing
if err.number<>0 then CheckFileType=false
end function

[ 本帖最后由 glxwl 于 2011-8-3 14:32 编辑 ]

作者: glxwl   发布时间: 2011-08-03

顶起来,希望达人帮我

作者: glxwl   发布时间: 2011-08-05