C# Upload File 这个比较有价值

 

using System;
using System.IO;
using System.Web.UI.HtmlControls;

namespace JH_ProfessionCMS.Common
{
/// <summary>
///
功能 : 上传文件操作类
///
作者 : xtx
/// </summary>
public class UpFile
{
public UpFile()
{
}

#region
是否允许该扩展名上传 IsAllowedExtension
/// <summary>
///
是否允许该扩展名上传
/// </summary>
/// <paramname = "hifile">HtmlInputFile
控件 </param>
/// <returns>
允许则返回 true, 否则返回 false </returns>
public bool IsAllowedExtension(HtmlInputFile 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">HtmlInputFile
控件 </param>
/// <returns>
超过最大值返回 false, 否则返回 true. </returns>
    public bool IsAllowedLength(HtmlInputFile 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">HtmlInputFile
控件 </param>
/// <param name="strAbsolutePath">
绝对路径 . :Server.MapPath(@"Image/upload") Server.MapPath(@"Image/upload/") 均可 , / 符号亦可 </param>
/// <returns>
返回的文件名即上传后的文件名 </returns>
public string SaveFile(HtmlInputFile 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">HtmlInputFile
控件 </param>
/// <param name="strAbsolutePath">
绝对路径 . :Server.MapPath(@"Image/upload") Server.MapPath(@"Image/upload/") 均可 , / 符号亦可 </param>
/// <param name="strOldFileName">
旧文件名 </param>
public string CoverFile(HtmlInputFile ffFile,string strAbsolutePath,string strOldFileName)
{
//
获得新文件名
string strNewFileName = GetUniqueString();

if(ffFile.PostedFile.FileName != string.Empty)
{
//
旧图片不为空时先删除旧图片
if(strOldFileName != string.Empty)
{
DeleteFile(strAbsolutePath,strOldFileName);
}
return SaveFile(ffFile,strAbsolutePath);
}
return "";
}
#endregion


}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值