年后写的一点代码

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);
}
}

...全文
6490 276 打赏 收藏 转发到动态 举报
写回复
用AI写文章
276 条回复
切换为时间正序
请发表友善的回复…
发表回复
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)

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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

试试用AI创作助手写篇文章吧