检查图片文件是否合法

'-------------------------------------------
'函数名:ChkImg
'作 用:检查图片文件是否合法
'参 数:img,图片路径,相对于网站根目录的绝对路径
'返回值:布尔类型,如果图片合法返回True,否则返回False
'条 件:服务器必须支持AspJpeg组件,
'         如不支持,为了避免所有图片都不能上传,本函数将直接返回True
'-------------------------------------------
Function ChkImg(img)
    On Error Resume Next '为了捕获错误信息,需要让代码在出错时能继续执行
    Dim RetunValue, ChkJpeg
    RetunValue = True
    '如果路径为空,则认为图片不合法
    If isnull(img) Then ChkImg = False:Exit Function
    Set ChkJpeg = Server.CreateObject("Persits.Jpeg")
    If -2147221005 <> Err Then    '如果组件被支持,则用组件检查图片的合法性
        ChkJpeg.Open Server.mappath(img)
        If Err Then
            RetunValue = False
        End If        
    Else    '如果组件不被支持,则跳过直接返回True
        RetunValue = True
    End If
    '必要的善后工作
    If Err.number <> 0 Then Err.clear
    Set ChkJpeg = Nothing
    ChkImg = RetunValue
End Function


  注意:因为AspJpeg只能处理已经在服务器上的文件,所以实际运用的过程中我们需要这样做:先将图片上传到一个临时文件夹,然后检查图片的合法性,如果合法,复制图片到图片保存目录,删除临时文件并返回上传成功信息,如果非法,直接删除临时文件并返回错误警告。

  因为仅仅只是用AspJpeg打开了一下图片,并未执行处理图片的操作,所以本函数的执行效率还是非常高的,经我个人的测试也是如此,使用中基本不必担心效率问题。

函数来源于:一想千开


评论: 1 | 引用: 0 | 查看次数: 1436
股票行情
回复回复股票行情 [2009-05-23 03:21:23 |  | del | 取消审核]
高深莫测 呵呵

发表评论
昵 称:
密 码:    游客发言不需要密码.
邮 箱:    支持Gravatar头像
网 址:
验证码:    点击输入框
内 容:
您一共可以输入1000个字
选 项:
不想保留信息请删除cookie
发表评论后您发表的内容自动复制到了剪贴板
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭