asp.net文件上传

//判断文件类型是否符合标准
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;
    }

}


/// <summary>
/// 保存上传的文件
/// </summary>
/// <param name="fileType">要验证的文件类型</param>
/// <param name="lenghtKB">大小(单位:KB)</param>
/// <param name="filePath">保存的路径(绝对路径)</param>
/// <param name="upLoad">上传文件的控件</param>
/// <param name="fileName">成功:保存后的文件名.失败:错误信息</param>
/// <returns>是否保存成功</returns>

public static bool SaveFile(string fileType, int lenghtKB, string filePath, FileUpload upLoad, out string fileName)
{
    
//判断是否上传了文件
    if (!upLoad.HasFile)
    
{
        fileName 
= "无效的文件内容";
        
return false;
    }


    
//判断文件大小
    if (upLoad.PostedFile.ContentLength > lenghtKB * 1024)
    
{
        fileName 
= "文件超过上传大小";
        
return false;
    }


    
//文件类型
    string type = upLoad.FileName;
    
string last = type.Substring(type.LastIndexOf('.'+ 1);
    type 
= upLoad.PostedFile.ContentType;
    
//type = type.Substring(type.LastIndexOf('.') + 1);
    if (type.Substring(05!= fileType)
    
{
        fileName 
= "无效的文件类型";
        
return false;
    }


    DateTime date 
= DateTime.Now;

    
//生成文件名
    fileName = date.Year.ToString() + date.Month.ToString() + date.Day.ToString() + date.Hour.ToString() +
                date.Minute.ToString() 
+ date.Second.ToString() + GetRandom().Next(0999+ "." + last;
    upLoad.SaveAs(filePath 
+ @"\" + fileName);
    
return true;

}
原文地址:https://www.cnblogs.com/di305449473/p/1243217.html