年后写的一点代码

lawbc 2009-02-03 03:56:43
加精

/// <summary>
/// 提供上传文件时所使用的方法
/// </summary>
public interface IUploadFile
{
/// <summary>
/// 验证上传文件的扩展名
/// </summary>
/// <param name="postFile">System.Web.HttpPostedFile对象</param>
/// <returns></returns>
bool CheckFileType(System.Web.HttpPostedFile postFile);

/// <summary>
/// 获取文件名称
/// 调用此方法并不创建新目录
/// </summary>
/// <param name="filePath">服务器的虚拟路径</param>
/// <param name="fileName">文件名</param>
/// <returns></returns>
string GetFileName(string filePath,string fileName);
}

/// <summary>
/// 提供上传文件时所使用的方法
/// </summary>
public abstract class UploadFile
{
/// <summary>
/// 获取文件路径
/// </summary>
/// <param name="path">虚拟路径</param>
/// <returns></returns>
protected string GetDirectory(string path)
{
string directoryName = DateTime.Now.ToString("yyyyMMdd");
string filePath = Path.Combine(path, directoryName);
if (!Directory.Exists(filePath))
{
return Path.Combine(filePath, GetNumber(1));
}
return Path.Combine(filePath, GetPath(Directory.GetDirectories(filePath), filePath));
}

/// <summary>
/// 获取文件夹中的文个数件少于1000的文件夹名称
/// </summary>
/// <param name="info">目录名称</param>
/// <param name="filePath">路径</param>
/// <returns></returns>
protected string GetPath(IList<string> info, string filePath)
{
string fileName = string.Empty;

if (info == null)
{
return null;
}
if (info.Count <= 0)
{
return GetNumber(1);
}
for (int i = 0; i < info.Count; i++)
{
if (Directory.Exists(info[i]))
{
if (Directory.GetFiles(info[i]).Length < 1000)
{
fileName = info[i];
break;
}
}
}
if (string.IsNullOrEmpty(fileName))
{
return Path.Combine(filePath, GetNumber(int.Parse(info.ToList<string>().Max(s => s.Substring(s.LastIndexOf("\\") + 1).TrimStart('0'))) + 1));
}
else
{
return fileName;
}
}

/// <summary>
/// 获取数字字符串,不足4位用0补足
/// </summary>
/// <param name="number">不大于9999的数字</param>
/// <returns></returns>
protected string GetNumber(int number)
{
if (number > 9999) return null;
return (10000 + number).ToString().Substring(1);
}


#region IUploadFile 成员

/// <summary>
/// 验证上传文件的扩展名
/// </summary>
/// <param name="postFile">System.Web.HttpPostedFile对象</param>
/// <returns></returns>
public abstract bool CheckFileType(System.Web.HttpPostedFile postFile);

/// <summary>
/// 获取文件名称
/// </summary>
/// <param name="filePath">服务器的虚拟路径</param>
/// <param name="fileName">文件名</param>
/// <returns></returns>
public virtual string GetFileName(string filePath,string fileName)
{
DateTime now = DateTime.Now;
string name = (100 + now.Hour).ToString().Substring(1) + (100 + now.Minute).ToString().Substring(1) + (100 + now.Second).ToString().Substring(1) + "_" + fileName;
return Path.Combine(GetDirectory(filePath), name);
}

#endregion
}

public class LBCUploadFile:UploadFile,IUploadFile
{
/// <summary>
/// 验证上传文件的扩展名
/// </summary>
/// <param name="postFile">System.Web.HttpPostedFile对象</param>
/// <returns></returns>
public override bool CheckFileType(System.Web.HttpPostedFile postFile)
{
IList<string> fileType = new List<string>();
fileType.Add("image/gif");
fileType.Add("image/jpeg");
fileType.Add("image/png");
return fileType.Contains(postFile.ContentType);
}
}

...全文
6435 276 打赏 收藏 举报
写回复
276 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
DHlinyuan 2012-10-31
支持分享
  • 打赏
  • 举报
回复
china__zhou 2012-10-16
总体感觉不错!
  • 打赏
  • 举报
回复
yiluohuanghun 2012-08-21
写的不错,学习了
  • 打赏
  • 举报
回复
lee3217813 2012-08-08

我看好你
  • 打赏
  • 举报
回复
John900828 2012-08-01
string fileName = Path.GetFileName(uploadFileName);
uploadFileName =Path.Combine(path,(1000000 + count).ToString().Substring(1) + "_" + fileName);

用递归岂不美妙
  • 打赏
  • 举报
回复
qimiliang 2012-04-27
收藏了
  • 打赏
  • 举报
回复
wvtjplh 2012-02-19
写法确实不错
  • 打赏
  • 举报
回复
sky_rv 2012-02-12
up 顶下吧说带着关注下
  • 打赏
  • 举报
回复
zhang98722 2011-12-12
表示当看到
return (10000 + number).ToString().Substring(1);

的时候
被小小的震动了一下
  • 打赏
  • 举报
回复
aiRuan 2011-12-09
学习,学习。。
  • 打赏
  • 举报
回复
dk503031240 2011-10-08
mark
  • 打赏
  • 举报
回复
xingyp1992 2011-09-26
不错,学习下
  • 打赏
  • 举报
回复
qingYun1029 2011-09-22
顶一下
  • 打赏
  • 举报
回复
苍鹫 2011-09-21
支持,帮顶!
  • 打赏
  • 举报
回复
hackerjoy 2011-07-09
mark
  • 打赏
  • 举报
回复
patrickjiang 2011-05-30
mark
  • 打赏
  • 举报
回复
FULIQIANG1 2011-05-12
看的我头都大了,不过写的真好
  • 打赏
  • 举报
回复
LZ说下是干嘛的多好
  • 打赏
  • 举报
回复
QIFU 2011-04-08
思想不错。我就是要学习这种 思想
  • 打赏
  • 举报
回复
稀粪飘雪 2011-03-18
本功能是本系统的一大特色,当用户选择一个居民以后系统会自动的把用户相关的资料都显示在“树形档案视图”中是以人的生命历程为线索,随着时间的流逝,那么资料会越来越完善,并且本系统的资料都是直接共享各业务系统的。无需二次录入,非常方便,真正做到六位一体,是真正的完整的档案资料。
  • 打赏
  • 举报
回复
加载更多回复(237)
相关推荐
发帖
.NET社区

6.0w+

社区成员

.NET技术交流专区
社区管理员
  • ASP.NET
  • R小R
  • 喵叔哟
加入社区
帖子事件
创建了帖子
2009-02-03 03:56
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。