时间:2016-02-16 02:29 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【C# 通用文件上传类】,下面是详细的讲解!
C# 通用文件上传类
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// Cls_Upfile 的摘要说明
/// </summary>
///
namespace AllSheng
{
public class upload
{
变量#region 变量
System.Web.HttpPostedFile postedFile;
protected string localFileName;//原文件名(含扩展名)
protected string localFileExtension;//原扩展名
protected long localFileLength;//原文件大小
protected string localFilePath;//原文件路径
protected string saveFileName;//保存的文件名(含扩展名)
protected string saveFileExtension;//保存的扩展名
//protected long saveFileLength;//保存的文件大小
protected string saveFilePath;//保存文件的服务器端的完整路径
protected string saveFileFolderPath;//保存文件的服务器端的文件夹路径
private string path=null;
private string fileType=null;
private int sizes=0;
#endregion
upload():初始化变量#region upload():初始化变量
/// <summary>
/// 初始化变量
/// </summary>
public upload()
{
path=@"uploadimages"; //上传路径
fileType="jpg|gif|bmp|jpeg|png|rar|doc";
sizes=200; //传文件的大小,默认200KB
}
#endregion
设置传入的值:Path/Sizes/FileType#region 设置传入的值:Path/Sizes/FileType
/// <summary>
/// 设置上传路径,如:uploadimages
/// </summary>
public string Path
{
set
{
path=@"" + value + @"";
}
}
/// <summary>
/// 设置上传文件大小,单位为KB
/// </summary>
public int Sizes
{
set
{
sizes=value;
}
}
/// <summary>
/// 设置上传文件的类型,如:jpg|gif|bmp
/// </summary>
public string FileType
{
set
{
fileType=value;
}
}
#endregion
SaveAs()上传文件#region SaveAs()上传文件
public string SaveAs(System.Web.HttpFileCollection files)
{
string myReturn="";
try
{
for (int iFile=0; iFile < files.Count; iFile++)
{
postedFile=files[iFile];
//获得文件的上传的路径
localFilePath=postedFile.FileName;
//判断上传文件路径是否为空
if (localFilePath==null || localFilePath=="")
{
//message("您没有上传数据呀,是不是搞错了呀!");
//break;
continue;
}
else
{
判断文件大小#region 判断文件大小
//获得上传文件的大小
localFileLength=postedFile.ContentLength;
//判断上传文件大小
if (localFileLength >=sizes * 1024)
{
message("上传的图片不能大于" + sizes + "KB");
break;
}
#endregion
文件夹#region 文件夹
//获取保存文件夹路径
saveFileFolderPath=getSaveFileFolderPath(path);
#endregion
文件名#region 文件名
//获得原文件名(含扩展名)
localFileName=System.IO.Path.GetFileName(postedFile.FileName);
saveFileName=DateTime.UtcNow.ToString("yyyy" + "MM" + "dd" + "HH" + "mm" + "ss" + "ffffff");//"yyyy"+"MM"+"dd"+"HH"+"mm"+"ss"+"ffffff"
#endregion
扩展名#region 扩展名
//获取原文件扩展名
localFileExtension=getFileExtension(localFileName);
//如果为真允许上传,为假则不允许上传
if (localFileExtension=="")
{
message("目前本系统支持的格式为:" + fileType);
}
//得到保存文件的扩展名,可根据需要更改扩展名
saveFileExtension=localFileExtension;
#endregion
//得到保存文件的完整路径
saveFilePath=saveFileFolderPath + saveFileName + saveFileExtension;
postedFile.SaveAs(saveFilePath);
myReturn=myReturn + ((myReturn=="" || myReturn==null) ? "" : "|") + path.TrimStart(new char[] { '' }) + saveFileName + saveFileExtension;
//以下对文章的内容进行一些加工
System.Web.HttpContext.Current.Response.Write("<script>parent.Article_Content___Frame.FCK.EditorDocument.body.innerHTML+='<img src=" + saveFileName + saveFileExtension + " "+" border=0 />'</SCRIPT>");
}
}
}
catch
{
//异常
message("出现未知错误!");
myReturn=null;
}
return myReturn;
}
#endregion
getSaveFileFolderPath( ):获得保存的文件夹的物理路径#region getSaveFileFolderPath( ):获得保存的文件夹的物理路径
/// <summary>
/// 获得保存的文件夹的物理路径
/// 返回保存的文件夹的物理路径,若为null则表示出错
/// </summary>
/// <param name="format">保存的文件夹路径 或者 格式化方式创建保存文件的文件夹,如按日期"yyyy"+"MM"+"dd":20060511</param>
/// <returns>保存的文件夹的物理路径,若为null则表示出错</returns>
private string getSaveFileFolderPath(string format)
{
string mySaveFolder=null;
try
{
string folderPath=null;
//以当前时间创建文件夹,
//!!!!!!!!!!!!以后用正则表达式替换下面的验证语句!!!!!!!!!!!!!!!!!!!
if (format.IndexOf("yyyy") > -1 || format.IndexOf("MM") > -1 || format.IndexOf("dd") > -1 || format.IndexOf("hh") > -1 || format.IndexOf("mm") > -1 || format.IndexOf("ss") > -1 || format.IndexOf("ff") > -1)
{
//以通用标准时间创建文件夹的名字
folderPath=DateTime.UtcNow.ToString(format);
mySaveFolder=System.Web.HttpContext.Current.Server.MapPath(".") + @"" + folderPath + @"";
}
else
{
mySaveFolder=System.Web.HttpContext.Current.Server.MapPath(".") + format;
}
System.IO.DirectoryInfo dir=new System.IO.DirectoryInfo(mySaveFolder);
//判断文件夹否存在,不存在则创建
if (!dir.Exists)
{
dir.Create();
}
}
catch
{
message("获取保存路径出错");
}
return mySaveFolder;
}
#endregion
getFileExtension( ):获取原文件的扩展名#region getFileExtension( ):获取原文件的扩展名
/// <summary>
/// 获取原文件的扩展名,返回原文件的扩展名(localFileExtension),该函数用到外部变量fileType,即允许的文件扩展名.
/// </summary>
/// <param name="myFileName">原文件名</param>
/// <returns>原文件的扩展名(localFileExtension);若返回为null,表明文件无后缀名;若返回为"",则表明扩展名为非法.</returns>
private string getFileExtension(string myFileName)
{
string myFileExtension=null;
//获得文件扩展名
myFileExtension=System.IO.Path.GetExtension(myFileName);//若为null,表明文件无后缀名;
//分解允许上传文件的格式
if (myFileExtension !="")
{myFileExtension=myFileExtension.ToLower();//转化为小写
}
string[] temp=fileType.Split('|');
//设置上传的文件是否是允许的格式
bool flag=false;
//判断上传的文件是否是允许的格式
foreach (string data in temp)
{
if (("." + data)==myFileExtension)
{
flag=true;
break;
}
}
if (!flag)
{
myFileExtension="";//不能设置成null,因为null表明文件无后缀名;
}
return myFileExtension;
}
#endregion
message( ):弹出消息框#region message( ):弹出消息框
/// <summary>
/// 弹出消息框,显示内容(msg),点击"确定"后页面跳转到该路径(url)
/// </summary>
/// <param name="msg">显示内容</param>
/// <param name="url">跳转路径</param>
private void message(string msg, string url)
{
System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');window.location='" + url + "'</script>");
}
/// <summary>
/// 弹出消息框,显示内容(msg),无跳转
/// </summary>
/// <param name="msg">显示内容</param>
private void message(string msg)
{
System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');</script>");
}
#endregion
}
}
关于C# 通用文件上传类的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
