日期:2013-09-13  浏览次数:20944 次

一直以来,很多项目都要求上传,每次都要写上传的代码,比较麻烦。便想写一个类来完成上传的任务,以便在开发中减轻负担。写的很简单,但确实实用^_^




using System;
using System.Web;
using System.IO;
using System.Text;

namespace upfile
{
///
/// upfile类完成文件的上传和删除功能
///
public class MyUpload
{
private System.Web.HttpPostedFile postedFile=null;
private string savePath="";
private string extension="";
private int fileLength=0;
//上传控件
public System.Web.HttpPostedFile PostedFile
{
get
{
return postedFile;
}
set
{
postedFile=value;
}
}


//存储路径
public string SavePath
{
get
{
if(savePath!="") return savePath;
return "C:\\";
}
set
{
savePath=value;
}
}


//文件大小
public int FileLength
{
get
{
if(fileLength!=0)
{
return fileLength;
}
return 1024;
}
set
{
fileLength=value*1024;
}
}


//文件格式
public string Extension
{
get
{
if(extension!="")
{
return extension;
}
return "";
}
set
{
extension=value;
}
}



public string PathToName(string path)
{
int pos=path.LastIndexOf("\\");
return path.Substring(pos+1);
}


//上传文件
public string Upload()
{
if(PostedFile!=null)
{
try
{
string fileName=PathToName(PostedFile.FileName);
if(!fileName.EndsWith(Extension))
{
return "你必须选择 "+Extension+" 这个格式的文件!";
}
if(PostedFile.ContentLength>FileLength)
{
return "文件太大!";
}
if(File.Exists((SavePath+"\\"+fileName)))
{
return "文件名重复!";
}
else
{
PostedFile.SaveAs(SavePath+"\\"+fileName);
return "上传文件成功!";
}
}
catch(System.Exception exc)
{
return exc.Message;
}
}
return "请选择文件上传!";
}

//显示文件名
public string upfilename()
{
string fileName=PathToName(PostedFile.FileName);
return fileName;
}

//显示详细路径
public string url()
{
string fileName=PathToName(PostedFile.FileName);
string urls=SavePath+"\\"+fileName;
return urls;
}

//删除上传的文件
public string delete(string url)
{

try
{

File.Delete(url);
return "删除文件成功!";

}
catch(System.Exception exc)
{
return exc.Message;
}

}


}
}






使用方法:
1.在引用里添加upfile.dll的引用
2.using upfile;
3.private MyUpload myupfile;
4.myupfile=new MyUpload(); //实例化
myupfile.PostedFile=this.File1.PostedFile; //设置上传控件
myupfile.SavePath=Server.MapPath(""); //设置上传路径

5.上传按钮:
this.Label2.Text=myupfile.Upload(); //上传
if(this.Label2.Text=="上传文件成功!")
{
this.upfile.Text=myupfile.upfilename(); //显示文件名
this.url.Text=myupfile.url(); //显示文件路径
}

6.删除按钮:
this.Label2.Text=myupfile.delete(this.url.Text);
if(this.Label2.Text=="删除文件成功!")
{
this.upfile.Text=""; //显示文件名
this.url.Text=""; //显示文件路径
}