首页 > 其他分享 >校验文件类型是否在白名单内。

校验文件类型是否在白名单内。

时间:2022-09-02 18:58:30浏览次数:54  
标签:Tuple 校验文件 var 类型 static 白名单 new fileFormat

class Program
    {
        static void Main(string[] args)
        {
            using (var Stream = new FileStream(@"C:\Users\qa_weiwa\Downloads\core 6.0.exe", FileMode.Open))
            {
                var inspector = new FileFormatInspector();
                var rt = FileExtensionValid.IsValid(inspector, Stream);
                if (rt.Item1)
                {
                    Console.WriteLine("附件类型符合要求");
                }
                else {
                    Console.WriteLine(rt.Item2);
                }
                Console.ReadKey();
            }
        }

        public static class FileExtensionValid
        {
            /// <summary>
            /// 校验文件类型是否在白名单内。
            /// 白名单:jpg、png、tif、gif、zip、pdf、doc、docx、xls、xlsx、msg
            /// </summary>
            /// <param name="fileFormatInspector"></param>
            /// <param name="stream"></param>
            /// <returns></returns>
            public static Tuple<bool, string> IsValid(FileFormatInspector fileFormatInspector,Stream stream)
            {
                var format = fileFormatInspector.DetermineFileFormat(stream);
                return FileExtensionIsInWhiteList(format);
            }
            private static Tuple<bool, string> FileExtensionIsInWhiteList(FileFormat fileFormat)
            {
                // Jpeg 
                if (fileFormat is null || fileFormat is Jpeg || fileFormat is Png || fileFormat is Tiff || fileFormat is Gif
                    || fileFormat is Gif || fileFormat is Zip || fileFormat is Pdf
                    || fileFormat is Word || fileFormat is Excel || fileFormat is OutlookMessage
                    )
                {
                    return new Tuple<bool, string>(true, "");
                }
                else { 
                    return new Tuple<bool, string>(false, "上传的文件类型不正确,请上传jpg、png、tif、gif、zip、pdf、doc、docx、xls、xlsx、msg类型的附件");
                }
            }
        }

}

 

标签:Tuple,校验文件,var,类型,static,白名单,new,fileFormat
From: https://www.cnblogs.com/Insist-Y/p/16650936.html

相关文章

  • Python源码学习-Objects类型
    目录简介类型定义类型对象对象操作缓存池本文基于Python3.10.4。简介在python中,有两种类型可以保存bytes(字节)类型的数据。分别是bytes与bytearray。其中bytearray支持修......
  • SI3933/GC3933/PAN3501/AS179 125K低频唤醒芯片同类型芯片的优势对比
    关于125K低频唤醒芯片,现在市面上有太多太多,像PAN3501、GC3933还有SI3933,都是替换SKYWORKS的AS179-92,同类型芯片的优势在哪里呢?今天小编挑一款给大家浅浅分享一下SI3933:3D......
  • 将string类型数字保留两位小数,并转换成千分位的格式
    保留两位小数,并转换成千分位的格式将一个string类型的数字,保留两位小数,并转换成千分位的格式//返回保留两位小数的字符串privateStringsaveTwo(Stringstr){......
  • 软件工程导论——构建模型类型
    2022-09-02构建模型的类型有:1、瀑布模型瀑布模型是像一个下台阶的形式。有过渡阶段。包括需求分析,设计,开发,集成,测试等方面。 图1-1瀑布模型图 2、快速原型模型......
  • C# Sql Server Image类型读取
    数据空中的image同过dataTable直接转成byte[]再把Base64保存为图片,这里把byte装成流再转图片当然也可以,只是那样略显麻烦privatevoidbutton1_Click(objectsender,......
  • C#-枚举类型及结构体类型
    枚举:enum枚举定义在namespace下,这样在当前的命名空间下,所有的类(class)都可以使用该枚举。publicenum枚举名{值1,值2,值N}//使用枚举类型枚举类型变量名=......
  • 08 | JAVA包装类型
    包装类型我们已经知道,Java的数据类型分两种:基本类型:byte,short,int,long,boolean,float,double,char引用类型:所有class和interface类型引用类型可以赋值为null,表示空,但基本......
  • Flask 学习-34.restful-full 请求参数自定义参数校验类型 (reqparse.RequestParser()
    前言在校验请求参数的时候,除了一些基本的required=True,type类型外,还会遇到一些校验,比如是否为空,字符串长度,以及一些自定义的参数规则。add_argument参数下面是add_arg......
  • Typescript类型体操 - Readonly 2
    题目中文实现一个通用MyReadonly2<T,K>,它带有两种类型的参数T和K。K指定应设置为Readonly的T的属性集。如果未提供K,则应使所有属性都变为只读,就像普通的Readonly<T>一......
  • Typescript类型体操 - Pick
    题目要求实现TS内置的Pick<T,K>,但不可以使用它。从类型T中选择出属性K,构造成一个新的类型。例如:interfaceTodo{title:stringdescription:stringco......