ASP.NET程序上传文件功能的具体实例代码

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.IO;

/// <summary>

/// Summary description for UploadFile

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

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 fileName)

{

string file = this.SavePath "\\" DateTime.Now.ToString("yyMMddhhmmss") fileName;

while (File.Exists(file))

{

file = this.SavePath "\\" DateTime.Now.ToString("yyMMddhhmmss") fileName;

}

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(System.Web.UI.WebControls.FileUpload file)

{

bool result = true;

try

{

//查看文件长度

if (file.PostedFile.ContentLength > (this.FileLength))

{

this.Error = "文件大小超出范允许的范围!";

return false;

}

string fileName = Path.GetFileName(file.PostedFile.FileName);

this.FileExtesion = Path.GetExtension(fileName);

if (!CheckFileExt(this.FileExtesion.ToLower()))

{

this.Error = "文件类型" this.FileExtesion "不允许!";

return false;

}

//取得要保存的文件名

string UpFile = this.MakeFileName(this.FileExtesion, fileName);

//保存文件

file.PostedFile.SaveAs(UpFile);

//返回文件名

this.SaveFile = Path.GetFileName(UpFile);

}

catch (Exception e)

{

result = false;

this.Error = e.Message;

}

return result;

}

}