asp.net 文件上传时判断图片文件格式

本文介绍了一种通过读取文件头部信息来验证文件类型的实现方法。该方法利用C#语言,通过对上传文件的二进制头部进行解析并与预设的文件类型进行比较,从而判断文件是否属于允许的类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class FileValidation
{
    public FileValidation()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
    }
    public static bool IsAllowedExtension(FileUpload fu, FileExtension[] fileEx)
    {
        int fileLen = fu.PostedFile.ContentLength;
        byte[] imgArray = new byte[fileLen];
        fu.PostedFile.InputStream.Read(imgArray, 0, fileLen);
        MemoryStream ms = new MemoryStream(imgArray);
        System.IO.BinaryReader br = new System.IO.BinaryReader(ms);
        string fileclass = "";
        byte buffer;
        try
        {
            buffer = br.ReadByte();
            fileclass = buffer.ToString();
            buffer = br.ReadByte();
            fileclass += buffer.ToString();
        }
        catch { }
        br.Close();
        ms.Close();
        foreach (FileExtension fe in fileEx)
        {
            if (Int32.Parse(fileclass) == (int)fe)
                return true;
        }
        return false;
    }
}
public enum FileExtension
{
    JPG = 255216,
    GIF = 7173,
    PNG = 13780,
    BMP = 6677
    //SWF = 6787,
    //RAR = 8297,
    //ZIP = 8075,
    //_7Z = 55122
    // 255216 jpg;           // 7173 gif;           // 6677 bmp,           // 13780 png;           // 6787 swf           // 7790 exe dll,           // 8297 rar           // 8075 zip           // 55122 7z           // 6063 xml           // 6033 html           // 239187 aspx           // 117115 cs           // 119105 js           // 102100 txt           // 255254 sql      
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值