• 检查上传图片是否为真实图片.


    if CheckFileType(Server.MapPath(FileName))=false then
    set fileobject=server.createobject("scripting.filesystemobject")
    fileobject.deletefile server.mappath(FileName)
    end if
    代码
    <%
    '***************************************************************
    '
    CheckFileType 函数用来检查文件是否为图片文件
    '
    参数filename是本地文件的路径
    '
    如果是文件jpeg,gif,bmp,png图片中的一种,函数返回true,否则返回false
    '
    ***************************************************************

    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
    %
    >
  • 相关阅读:
    异常 中断 陷阱
    关于delete字符串 需不需要加 [ ]
    关于联合体输出的问题(是否小端模式)
    String reorder
    数据库 ---5 索引 创建用户及授权 数据备份
    数据库 --- 4 多表查询 ,Navicat工具 , pymysql模块
    数据库 --- 3 行(记录)操作 单表查询
    数据库 --- 2 库 ,表
    数据库 --- 1 初始 数据库
    并发 --- 5 线程的其他方法 线程队列 线程池 协程
  • 原文地址:https://www.cnblogs.com/netlove/p/1807079.html
Copyright © 2020-2023  润新知