上传文件的一个类
using System;
using System.IO;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
namespace BLL
{
/// <summary>
/// UpFile 的摘要说明。
/// </summary>
public class UpFile
{
#region 是否允许该扩展名上传IsAllowedExtension
///<summary>
///是否允许该扩展名上传
///</summary>
///<param name = "hifile">FileUpload控件</param>
///<returns>允许则返回true,否则返回false</returns>
public bool IsAllowedExtension(FileUpload hifile)
{
string strOldFilePath = "";
string strExtension = "";
//允许上传的扩展名,可以改成从配置文件中读出
string[] arrExtension = { ".gif", ".jpg", ".jpeg", ".bmp", ".png" };
if (hifile.PostedFile.FileName != string.Empty)
{
strOldFilePath = hifile.PostedFile.FileName;
//取得上传文件的扩展名
strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf("."));
//判断该扩展名是否合法
for (int i = 0; i < arrExtension.Length; i++)
{
if (strExtension.Equals(arrExtension[i]))
{
return true;
}
}
}
return false;
}
#endregion
#region 判断上传文件大小是否超过最大值IsAllowedLength
/// <summary>
/// 判断上传文件大小是否超过最大值
/// </summary>
/// <param name="hifile">FileUpload控件</param>
/// <returns>超过最大值返回false,否则返回true.</returns>
public bool IsAllowedLength(FileUpload hifile)
{
//允许上传文件大小的最大值,可以保存在xml文件中,单位为KB
int i = 20;
//如果上传文件的大小超过最大值,返回flase,否则返回true.
if (hifile.PostedFile.ContentLength > i * 1024)
{
return false;
}
return true;
}
#endregion
#region 获取一个不重复的文件名GetUniqueString
/// <summary>
/// 获取一个不重复的文件名
/// </summary>
/// <returns></returns>
public string GetUniqueString()
{
//得到的文件名形如:20050922101010
return DateTime.Now.ToString("yyyyMMddhhmmss");
}
#endregion
#region 删除指定文件DeleteFile
/// <summary>
/// 删除指定文件
/// </summary>
/// <param name="strAbsolutePath">文件绝对路径</param>
/// <param name="strFileName">文件名</param>
public void DeleteFile(string strAbsolutePath, string strFileName)
{
//判断路径最后有没有\符号,没有则自动加上
if (strAbsolutePath.LastIndexOf("\\") == strAbsolutePath.Length)
{
//判断要删除的文件是否存在
if (File.Exists(strAbsolutePath + strFileName))
{
//删除文件
File.Delete(strAbsolutePath + strFileName);
}
}
else
{
if (File.Exists(strAbsolutePath + "\\" + strFileName))
{
File.Delete(strAbsolutePath + "\\" + strFileName);
}
}
}
#endregion
#region 上传文件并返回文件名 SaveFile
/// <summary>
/// 上传文件并返回文件名
/// </summary>
/// <param name="hifile">FileUpload控件</param>
/// <param name="strAbsolutePath">绝对路径.如:Server.MapPath(@"Image/upload")与Server.MapPath(@"Image/upload/")均可,用\符号亦可</param>
/// <returns>返回的文件名即上传后的文件名</returns>
public string SaveFile(FileUpload hifile, string strAbsolutePath)
{
string strOldFilePath = "", strExtension = "", strNewFileName = "";
//如果上传文件的文件名不为空
if (hifile.PostedFile.FileName != string.Empty)
{
strOldFilePath = hifile.PostedFile.FileName;
//取得上传文件的扩展名
strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf("."));
//文件上传后的命名
strNewFileName = GetUniqueString() + strExtension;
//如果路径末尾为\符号,则直接上传文件
if (strAbsolutePath.LastIndexOf("\\") == strAbsolutePath.Length)
{
hifile.PostedFile.SaveAs(strAbsolutePath + strNewFileName);
}
else
{
hifile.PostedFile.SaveAs(strAbsolutePath + "\\" + strNewFileName);
}
}
return strNewFileName;
}
#endregion
#region 重新上传文件,删除原有文件CoverFile
/// <summary>
/// 重新上传文件,删除原有文件
/// </summary>
/// <param name="ffFile">FileUpload控件</param>
/// <param name="strAbsolutePath">绝对路径.如:Server.MapPath(@"Image/upload")与Server.MapPath(@"Image/upload/")均可,用\符号亦可</param>
/// <param name="strOldFileName">旧文件名</param>
public void CoverFile(FileUpload ffFile, string strAbsolutePath, string strOldFileName)
{
//获得新文件名
string strNewFileName = GetUniqueString();
if (ffFile.PostedFile.FileName != string.Empty)
{
//旧图片不为空时先删除旧图片
if (strOldFileName != string.Empty)
{
DeleteFile(strAbsolutePath, strOldFileName);
}
SaveFile(ffFile, strAbsolutePath);
}
}
#endregion
}
}
using System.IO;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
namespace BLL
{
/// <summary>
/// UpFile 的摘要说明。
/// </summary>
public class UpFile
{
#region 是否允许该扩展名上传IsAllowedExtension
///<summary>
///是否允许该扩展名上传
///</summary>
///<param name = "hifile">FileUpload控件</param>
///<returns>允许则返回true,否则返回false</returns>
public bool IsAllowedExtension(FileUpload hifile)
{
string strOldFilePath = "";
string strExtension = "";
//允许上传的扩展名,可以改成从配置文件中读出
string[] arrExtension = { ".gif", ".jpg", ".jpeg", ".bmp", ".png" };
if (hifile.PostedFile.FileName != string.Empty)
{
strOldFilePath = hifile.PostedFile.FileName;
//取得上传文件的扩展名
strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf("."));
//判断该扩展名是否合法
for (int i = 0; i < arrExtension.Length; i++)
{
if (strExtension.Equals(arrExtension[i]))
{
return true;
}
}
}
return false;
}
#endregion
#region 判断上传文件大小是否超过最大值IsAllowedLength
/// <summary>
/// 判断上传文件大小是否超过最大值
/// </summary>
/// <param name="hifile">FileUpload控件</param>
/// <returns>超过最大值返回false,否则返回true.</returns>
public bool IsAllowedLength(FileUpload hifile)
{
//允许上传文件大小的最大值,可以保存在xml文件中,单位为KB
int i = 20;
//如果上传文件的大小超过最大值,返回flase,否则返回true.
if (hifile.PostedFile.ContentLength > i * 1024)
{
return false;
}
return true;
}
#endregion
#region 获取一个不重复的文件名GetUniqueString
/// <summary>
/// 获取一个不重复的文件名
/// </summary>
/// <returns></returns>
public string GetUniqueString()
{
//得到的文件名形如:20050922101010
return DateTime.Now.ToString("yyyyMMddhhmmss");
}
#endregion
#region 删除指定文件DeleteFile
/// <summary>
/// 删除指定文件
/// </summary>
/// <param name="strAbsolutePath">文件绝对路径</param>
/// <param name="strFileName">文件名</param>
public void DeleteFile(string strAbsolutePath, string strFileName)
{
//判断路径最后有没有\符号,没有则自动加上
if (strAbsolutePath.LastIndexOf("\\") == strAbsolutePath.Length)
{
//判断要删除的文件是否存在
if (File.Exists(strAbsolutePath + strFileName))
{
//删除文件
File.Delete(strAbsolutePath + strFileName);
}
}
else
{
if (File.Exists(strAbsolutePath + "\\" + strFileName))
{
File.Delete(strAbsolutePath + "\\" + strFileName);
}
}
}
#endregion
#region 上传文件并返回文件名 SaveFile
/// <summary>
/// 上传文件并返回文件名
/// </summary>
/// <param name="hifile">FileUpload控件</param>
/// <param name="strAbsolutePath">绝对路径.如:Server.MapPath(@"Image/upload")与Server.MapPath(@"Image/upload/")均可,用\符号亦可</param>
/// <returns>返回的文件名即上传后的文件名</returns>
public string SaveFile(FileUpload hifile, string strAbsolutePath)
{
string strOldFilePath = "", strExtension = "", strNewFileName = "";
//如果上传文件的文件名不为空
if (hifile.PostedFile.FileName != string.Empty)
{
strOldFilePath = hifile.PostedFile.FileName;
//取得上传文件的扩展名
strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf("."));
//文件上传后的命名
strNewFileName = GetUniqueString() + strExtension;
//如果路径末尾为\符号,则直接上传文件
if (strAbsolutePath.LastIndexOf("\\") == strAbsolutePath.Length)
{
hifile.PostedFile.SaveAs(strAbsolutePath + strNewFileName);
}
else
{
hifile.PostedFile.SaveAs(strAbsolutePath + "\\" + strNewFileName);
}
}
return strNewFileName;
}
#endregion
#region 重新上传文件,删除原有文件CoverFile
/// <summary>
/// 重新上传文件,删除原有文件
/// </summary>
/// <param name="ffFile">FileUpload控件</param>
/// <param name="strAbsolutePath">绝对路径.如:Server.MapPath(@"Image/upload")与Server.MapPath(@"Image/upload/")均可,用\符号亦可</param>
/// <param name="strOldFileName">旧文件名</param>
public void CoverFile(FileUpload ffFile, string strAbsolutePath, string strOldFileName)
{
//获得新文件名
string strNewFileName = GetUniqueString();
if (ffFile.PostedFile.FileName != string.Empty)
{
//旧图片不为空时先删除旧图片
if (strOldFileName != string.Empty)
{
DeleteFile(strAbsolutePath, strOldFileName);
}
SaveFile(ffFile, strAbsolutePath);
}
}
#endregion
}
}