上传文件[原创]

/*
 Descript:上传文件
 Author:Blue.Dream
 Date:2004-09-21 22:21 
声明:最近发现不少网站引用本人的文章,竟将作者信息都省略了,请引用本文的网站将作者不要省略作者的信息.
*/
namespace BDStudio.Common
{
 using System;
 using System.IO;
 using System.Web;
 /// <summary>
 /// 上传单个文件
 /// </summary>
 public class UpLoadFile
 {
  private string[] AllowFileType;    //所允许的文件类型
  private double FileLength;     //所允许的文件大小(KB)
  private string SavePath;     //文件的存储路径
  private string SaveFile;     //上传后的文件名
  private string Error;      //存储错误信息
  private string FileExtesion;    //上传文件的扩展名

  /// <summary>
  /// 构造函数
  /// </summary>
  /// <param name="allFileType">允许的文件类型,多个以","分开</param>
  /// <param name="fileLength">文件大小</param>
  /// <param name="savePath">保存路径</param>
  public UpLoadFile(string allFileType,double fileLength,string savePath)
  {
   char[] sp = {','};
   AllowFileType = allFileType.Split(sp);
   FileLength = fileLength;
   SavePath = savePath;
  }

  /// <summary>
  /// 返回生成的文件名
  /// </summary>
  public string FileName
  {
   get
   {
    return SaveFile;
   }
  }

  /// <summary>
  /// 返回出错信息
  /// </summary>
  public string ErrorMessage
  {
   get
   {
    return Error;
   }
  }

  /// <summary>
  /// 根据SavePath,生成文件名
  /// </summary>
  /// <returns></returns>
  private string MakeFileName(string fileType)
  {   
   string file = this.SavePath + "//" + System.DateTime.Now.Year.ToString()+System.DateTime.Now.Month.ToString()+System.DateTime.Now.Day.ToString()+System.DateTime.Now.Hour.ToString()+System.DateTime.Now.Minute.ToString()+System.DateTime.Now.Second.ToString()+this.FileExtesion;
   for(; File.Exists(file);)
   {
    file = this.SavePath + "//" + System.DateTime.Now.Year.ToString()+System.DateTime.Now.Month.ToString()+System.DateTime.Now.Day.ToString()+System.DateTime.Now.Hour.ToString()+System.DateTime.Now.Minute.ToString()+System.DateTime.Now.Second.ToString()+this.FileExtesion;
   }
   return file;
  }

  /// <summary>
  /// 检查文件类型
  /// </summary>
  /// <param name="fileEx">MIME内容</param>
  /// <returns></returns>
  private bool CheckFileExt(string fileEx)
  {
   bool result = false;
   for(int i = 0; i < this.AllowFileType.Length; i++)
   {
    if(fileEx.IndexOf(this.AllowFileType[i].ToLower()) > -1)
    {
     result = true;
     break;
    }
   }
   return result;
  }

  public bool UpLoad()
  {
   bool result = true;
   System.Web.HttpFileCollection objFiles = System.Web.HttpContext.Current.Request.Files;
   System.Web.HttpPostedFile objFile = objFiles[0];
   try
   {
    //查看文件长度
    if(objFile.ContentLength > (this.FileLength))
    {
     this.Error = "文件大小超出范允许的范围!";
     return false;
    }    
    
    string fileName = Path.GetFileName(objFile.FileName);
    this.FileExtesion = Path.GetExtension(fileName);    
    
    if(!CheckFileExt(this.FileExtesion.ToLower()))
    {
     this.Error = "文件类型"+this.FileExtesion+"不允许!";
     return false;
    }
    //取得要保存的文件名
    string UpFile = this.MakeFileName(this.FileExtesion);
    //保存文件
    objFile.SaveAs(UpFile);
    //返回文件名
    this.SaveFile = Path.GetFileName(UpFile);
    
   }
   catch(Exception e)
   {
    result = false;
    this.Error = e.Message;
   } 
   return result;
  }

 }
}
http://blog.csdn.net/zhgroup

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值