不只是判斷的擴展名,修改擴展名的也可判斷。

1 PRivate bool IsImage(string filePath) 2 { 3 Image image; 4 try 5 { 6 image = Image.FromFile(filePath); 7 image.Dispose(); 8 return true; 9 }10 catch (Exception ex)11 {12 return false;13 }14 }
判斷文件的頭部

/// <summary> /// 根據(jù)文件頭判斷上傳的文件類型 /// </summary> /// <param name="filePath">filePath是文件的完整路徑 </param> /// <returns>返回true或false</returns> private bool IsPicture(string filePath) { try { FileStream fs = new FileStream(filePath, FileMode.Open, Fileaccess.Read); BinaryReader reader = new BinaryReader(fs); string fileClass; byte buffer; buffer = reader.ReadByte(); fileClass = buffer.ToString(); buffer = reader.ReadByte(); fileClass += buffer.ToString(); reader.Close(); fs.Close(); if (fileClass == "255216" || fileClass == "7173" || fileClass == "13780" || fileClass == "6677") //255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar { return true; } else { return false; } } catch { return false; } }
新聞熱點
疑難解答