ASP

本类阅读TOP10

·asp常用数据库连接方法和技巧
·无组件生成BMP验证码
·一些常用的辅助代码 (网络收藏)
·JavaScript实现的数据表格:冻结列、调整列宽和客户端排序
·VisualStudio.NET_2003及其 MSDN 下载地址
·ASP模拟MVC模式编程
·图片以二进制流输出到网页
·MD5加密算法 ASP版
·ASP.NET编程中的十大技巧
·改进 ASP 的字符串处理性能

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
上传文件[原创]

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

/*
 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;
  }

 }
}




相关文章

相关软件