• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP.net判断上传文件类型的三种有效方法
    一、安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法。
    复制代码 代码如下:

    Boolean fileOk = false;
    string path = Server.MapPath("~/images/");
    //判断是否已经选取文件
    if (FileUpload1.HasFile)
    {
    //取得文件的扩展名,并转换成小写
    string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
    //限定只能上传jpg和gif图片
    string[] allowExtension = { ".jpg", ".gif" };
    //对上传的文件的类型进行一个个匹对
    int j = 0;
    for (int i = 0; i allowExtension.Length; i++)
    {
    if (fileExtension == allowExtension[i])
    {
    fileOk = true;
    return;
    }
    else
    {
    j++;
    }
    }
    if (j > 0)
    {
    Response.Write("script>alert('文件格式不正确');/script>");
    return;
    }
    }
    else
    {
    Response.Write("script>alert('你还没有选择文件');/script>");
    return;
    }
    //如果扩展名符合条件,则上传
    if (fileOk)
    {
    FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
    Response.Write("script>alert('上传成功');/script>");
    }

    二、不检测文件后缀而是检测文件MIME内容类型。
    复制代码 代码如下:

    Boolean fileOk = false;
    string path = Server.MapPath("~/images/");
    //判断是否已经选取文件
    if (FileUpload1.HasFile)
    {
    //取得文件MIME内容类型
    string type = this.FileUpload1.PostedFile.ContentType.ToLower();
    if (type.Contains("image")) //图片的MIME类型为"image/xxx",这里只判断是否图片。
    {
    fileOk = true;
    }
    else
    {
    Response.Write("script>alert('格式不正确')/script>");
    }
    }
    else
    {
    Response.Write("script>alert('你还没有选择文件');/script>");
    }
    //如果扩展名符合条件,则上传
    if (fileOk)
    {
    FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
    Response.Write("script>alert('上传成功');/script>");
    }

    三、可以实现真正意义上的文件类型判断
    复制代码 代码如下:

    try
    {
    //判断是否已经选取文件
    if (FileUpload1.HasFile)
    {
    if (IsAllowedExtension(FileUpload1))
    {
    string path = Server.MapPath("~/images/");
    FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
    Response.Write("script>alert('上传成功');/script>");
    }
    else
    {
    Response.Write("script>alert('您只能上传jpg或者gif图片');/script>");
    }
    }
    else
    {
    Response.Write("script>alert('你还没有选择文件');/script>");
    }
    }
    catch (Exception error)
    {
    Response.Write(error.ToString());
    }
    #endregion
    }
    //真正判断文件类型的关键函数
    public static bool IsAllowedExtension(FileUpload hifile)
    {
    System.IO.FileStream fs = new System.IO.FileStream(hifile.PostedFile.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
    System.IO.BinaryReader r = new System.IO.BinaryReader(fs);
    string fileclass = "";
    //这里的位长要具体判断.
    byte buffer;
    try
    {
    buffer = r.ReadByte();
    fileclass = buffer.ToString();
    buffer = r.ReadByte();
    fileclass += buffer.ToString();
    }
    catch
    {
    }
    r.Close();
    fs.Close();
    if (fileclass == "255216" || fileclass == "7173")//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    您可能感兴趣的文章:
    • asp.net下Response.ContentType类型汇总
    • asp.net 下载文件时根据MIME类型自动判断保存文件的扩展名
    • ASP.NET在上传文件时对文件类型的高级判断的代码
    • c#根据文件类型获取相关类型图标的方法代码
    • ASP.NET中常见文件类型、扩展名、存放位置及用途总结
    • C#实现判断图形文件格式的方法
    • asp.net FileUpload控件实现文件格式判断与文件大小限制
    • C#检测上传文件真正类型的方法
    • asp.net文件上传解决方案(图片上传、单文件上传、多文件上传、检查文件类型)
    • ASP.NET通过byte正确安全的判断上传文件格式
    上一篇:如何将数据绑到gridview然后导成excel
    下一篇:asp.net传多个值到其它页面的具体实现
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ASP.net判断上传文件类型的三种有效方法 ASP.net,判断,上传,文件,类型,