• asp判断文件的真实类型


    下面这个函数可以检测文件是否属于图片格式,支持jpg,gif,bmp,png这四种格式
    <%
    const adTypeBinary=1

    dim jpg(1):jpg(0)=CByte(&HFF):jpg(1)=CByte(&HD8)
    dim bmp(1):bmp(0)=CByte(&H42):bmp(1)=CByte(&H4D)
    dim png(3):png(0)=CByte(&H89):png(1)=CByte(&H50):png(2)=CByte(&H4E):png(3)=CByte(&H47)
    dim gif(5):gif(0)=CByte(&H47):gif(1)=CByte(&H49):gif(2)=CByte(&H46):gif(3)=CByte(&H39):gif(4)=CByte(&H38):gif(5)=CByte(&H61)

    function CheckFileType(filename)
    on error resume next
    CheckFileType=false
    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
    case "gif"
    stamp=fstream.read(6)
    for i=0 to 5
    if ascB(MidB(stamp,i+1,1))=gif(i) then CheckFileType=true else CheckFileType=false
    next
    case "png"
    stamp=fstream.read(4)
    for i=0 to 3
    if ascB(MidB(stamp,i+1,1))=png(i) then CheckFileType=true else CheckFileType=false
    next
    case "bmp"
    stamp=fstream.read(2)
    for i=0 to 1
    if ascB(MidB(stamp,i+1,1))=bmp(i) then CheckFileType=true else CheckFileType=false
    next
    end select
    fstream.Close
    set fseteam=nothing
    if err.number<>0 then CheckFileType=false
    end function
    %>

    使用方法。


    If not CheckFileType(Server.mappath("文件名.jpg")) then
    response.Write "文件不是图片格式!"
    else
    response.Write "文件是图片格式!"
    end if

  • 相关阅读:
    fork 函数 和vfork 函数的区别
    进程时间
    输出子进程状态
    二维字符串数组字典排序
    括号匹配
    队列实现二叉树层序遍历
    二叉查找树
    分块查找
    JS中的className含义
    Java打印温度转换表
  • 原文地址:https://www.cnblogs.com/superfeeling/p/1931374.html
Copyright © 2020-2023  润新知