zoukankan      html  css  js  c++  java
  • 检查上传图片是否为真实图片.

    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
    %
    >
  • 相关阅读:
    JS中原型对象中的constructor的作用?
    ES Module,commonjs和Typescript模块系统
    webpack中的hash、chunkhash和contenthash
    react-spring介绍(翻译)
    Typescript中的对象多可能类型推导的解决办法
    博客定制样式和脚本代码
    React和Vue对比
    CSS动画属性/重绘重排组合层/GPU加速 渲染优化相关及联系
    Object.create()探索
    await的错误处理问题,一个issue引发的ts社区的讨论
  • 原文地址:https://www.cnblogs.com/netlove/p/1807079.html
Copyright © 2011-2022 走看看