年后写的一点代码
/// <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);
}
}
相关推荐
总要比别人好一点——天下人字最难写
总要比别人好一点——天下人字最难写能让你重新焕发起创造热情、焕发起新生命力,赶快来下载总要比别人好...该文档为总要比别人好一点——天下人字最难写,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
java版飞机大战源码-interview:写在2019年后的蚂蚁、头条、拼多多的面试总结
java版飞机大战源码 写在2019年后的蚂蚁、头条、拼多多的面试总结 不想听我BB直接进入面试分享: 说起来开始进行面试是年前倒数第二周,上午9点,我还在去公司的公交上,突然收到蚂蚁的面试电话,其实算不上真正的面试。面试官只是和我聊了下他们在做的事情(主要是做双十一这里大促的稳定性保障,偏中间件吧),说的很详细,然后和我沟通了下是否有兴趣,我表示有兴趣,后面就收到正式面试的通知,最后没选择去蚂蚁表示抱歉。 当时我自己也准备出去看看机会,顺便看看自己的实力。当时我其实挺纠结的,一方面现在部门也正需要我,还是可以有一番作为的,另一方面觉得近一年来进步缓慢,没有以前飞速进步的成就感了,而且业务和技术偏于稳定,加上自己也属于那种比较懒散的人,骨子里还是希望能够突破现状,持续在技术上有所精进。 在开始正式的总结之前,还是希望各位同仁能否听我继续发泄一会,抱拳! 我翻开自己2018年初立的flag,觉得甚是惭愧。其中就有一条是保持一周写一篇博客,奈何中间因为各种原因没能坚持下去。细细想来,主要是自己没能真正静下来心认真投入到技术的研究和学习,那么为什么会这样?说白了还是因为没有确定目标或者目标不
javascript实现取的整一年后的时间
鉴于有的画面上需要判断一年之后的具体日期,根据不同月份算出一年之后的具体日期。
40年后的我作文.doc
40年后的我作文.doc
Python+wxpy写的微信群发代码
Python+wxpy写的微信群发代码,由于微信的发送消息频率有限制,因此如果好友数量比较多,群发时间会比较长一点;



