.net 操作文件上传
时间:2010-10-11 来源:共谱一曲
/// <summary>
/// 上传文件
/// </summary>
/// <param name="fileUpload">文件</param>
/// <param name="path">文件上传路径</param>
/// <returns>bool</returns>
private static bool SaveFile(FileUpload fileUpload,string path)
{
//上传
fileUpload.SaveAs(HttpContext.Current.Server.MapPath(path));
return true;
}
/// <summary>
/// 上传文件 文件类型 大小KB 路径 必须在指定范围以内
/// </summary>
/// <param name="fileUpload">要上传文件</param>
/// <param name="Path">上传路径</param>
/// <param name="FileType">数组:文件后缀名</param>
/// <param name="length">文件大小KB</param>
/// <returns>bool</returns>
private static bool SaveFile(FileUpload fileUpload, string Path, string[] FileType, int length,ref string msg)
{
//获取文件要保存的路径 //从配置文件读取
string FilePath = Config.ConfigHelper.GetConfigString("FilePath");
//获取文件后缀名
string strEx = Path.Substring(Path.LastIndexOf("."));
//定义是否包含数组内的文件格式
bool ft = false;
//得到FileType数组长度
int len = FileType.Length;
string strType="";
for (int i = 0; i < len; i++)
{
if (FileType[i].ToLower() == strEx.ToLower())
{
ft = true;
break;
}
strType += FileType[i] + "或";
}
//如果包含文件后缀名
if (ft)
{
if (((int.Parse(fileUpload.FileContent.Length.ToString())) / 1024) < length)
{
if (Path != "")
{
string strPath = FilePath + Path;
SaveFile(fileUpload,strPath);
return true;
}
else
{
//目录为空
return false;
}
}
else
{
//大小超出范围
string s = "对不起,您上传文件的大小超出范围!不能超过" + length + "KB";
msg = s;
return false;
}
}
else
{
//后缀名不合格
strType = strType.Substring(0, strType.Length - 1);
string s = "对不起,您上传文件的格式不正确!标准格式应为:" + strType;
msg = s;
return false;
}
}
/// <summary>
/// 上传文件
/// </summary>
/// <param name="fileUpload">上传文件</param>
/// <param name="path">路径 文件夹+文件名</param>
/// <param name="FileType">文件类型</param>
/// <returns>string path路径</returns>
public static string SaveFile(FileUpload fileUpload, string path, string[] FileType,ref string msg)
{
//if (fileUpload.HasFile)
//{
//获取物理路径
string FileName = fileUpload.PostedFile.FileName;
//获取后缀名
string strEx = FileName.Substring(FileName.LastIndexOf("."));
//获取文件大小KB //从配置文件读取
int FileSize = Config.ConfigHelper.GetConfigInt("FileSize");
//获取文件要保存路径 //从配置文件读取
string FilePath = Config.ConfigHelper.GetConfigString("FilePath");
//
if (path != "")
{
string str=path.Substring(0,path.LastIndexOf("/"));
string strPath = HttpContext.Current.Server.MapPath(FilePath + str);
//如果源文件夹不存在则创建
if (!Directory.Exists(strPath))
{
Directory.CreateDirectory(strPath);
}
SaveFile(fileUpload, path, FileType, FileSize,ref msg);
return path;
}
//添加新文件 此处用作非图片文件上传执行
else
{
//获取当前年月份
string str = DateTime.Now.ToString("yyyyMM");
string strGui;
string strPath = HttpContext.Current.Server.MapPath(FilePath + str);
//如果源文件夹不存在则创建
if (!Directory.Exists(strPath))
{
//DirectoryInfo d = new DirectoryInfo(str);
Directory.CreateDirectory(strPath);
}
//重新赋文件名
string GuidName = Guid.NewGuid() + strEx;
strGui = str + "/" + GuidName;
SaveFile(fileUpload, strGui, FileType, FileSize,ref msg);
return strGui;
}
//}
//else
//{
// msg = "对不起,请点击浏览选择文件!";
// return "";
//}
}
/// <summary>
/// 上传图片
/// </summary>
/// <param name="FileUpload">图片文件</param>
/// <param name="path">图片路径 路径不为空表示更新 为空表示新添加</param>
/// <returns>string 路径</returns>
public static string SaveImage(FileUpload FileUpload, string path,ref string msg)
{
if (FileUpload.HasFile)
{
//获取物理路径
string FileName = FileUpload.PostedFile.FileName;
//获取后缀名
string strEx = FileName.Substring(FileName.LastIndexOf("."));
bool ft= false;
string strType = "";
//文件的格式
string[] FileType = { ".jpg", ".gif" };
//循环验证是否是合法格式
for (int i = 0; i < FileType.Length; i++)
{
if (FileType[i].ToLower() == strEx.ToLower())
{
ft = true;
break;
}
strType += FileType[i] + "或";
}
//格式不正确 返回信息
if (!ft)
{
strType = strType.Substring(0, strType.Length - 1);
msg = "对不起,您上传文件的格式不正确!标准格式应为:" + strType;
}
//获取文件大小KB //从配置文件读取
int FileSize = Config.ConfigHelper.GetConfigInt("ImgSize");
//获取文件要保存路径
string FilePath = Config.ConfigHelper.GetConfigString("FilePath");
//路径不为空表示更新 文件名不变 覆盖原文件
if (path != "")
{
SaveFile(FileUpload, path, FileType, FileSize, ref msg);
return path;
}
//添加新文件
else
{
//获取当前年月份
string str = DateTime.Now.ToString("yyyyMM");
string strGui;
string strPath = HttpContext.Current.Server.MapPath(FilePath + str);
//如果源文件夹不存在则创建
if (!Directory.Exists(strPath))
{
//DirectoryInfo d = new DirectoryInfo(str);
Directory.CreateDirectory(strPath);
}
//重新赋文件名
string GuidName = Guid.NewGuid() + strEx;
strGui = str + "/" + GuidName;
SaveFile(FileUpload, strGui, FileType, FileSize, ref msg);
return strGui;
}
}
else
{
msg = "对不起,请点击浏览选择文件!";
return "";
}
}