上传文件[原创]

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

/*

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;

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航