
using System.IO
using System.Web.UI.HtmlControls
namespace JH_ProfessionCMS.Common
{
/// <summary>
/// 功能 : 上传文件 *** 作类
/// 作者 : xtx
/// </summary>
public class UpFile
{
public UpFile()
{
}
#region 是否允许该扩展名上传 IsAllowedExtension
/// <summary>
/// 是否允许该扩展名上传
/// </summary>
/// <paramname = "hifile">HtmlInputFile 控件 </param>
/// <returns>允许则返回 true, 否则返回 false </returns>
public bool IsAllowedExtension(HtmlInputFile hifile)
{
string strOldFilePath = ""
string strExtension = ""
// 允许上传的扩展名,可以改成从配置文件中读出
string[]arrExtension = {".gif",".jpg",".jpeg",".bmp",".png"}
if(hifile.PostedFile.FileName != string.Empty)
{
strOldFilePath = hifile.PostedFile.FileName
// 取得上传文件的扩展名
strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf("."))
// 判断该扩展名是否合法
for(int i = 0i <arrExtension.Lengthi++)
{
if(strExtension.Equals(arrExtension[i]))
{
return true
}
}
}
return false
}
#endregion
#region 判断上传文件大小是否超过最大值 IsAllowedLength
/// <summary>
/// 判断上传文件大小是否超过最大值
/// </summary>
/// <param name="hifile">HtmlInputFile 控件 </param>
/// <returns>超过最大值返回 false, 否则返回 true. </returns>
public bool IsAllowedLength(HtmlInputFile hifile)
{
// 允许上传文件大小的最大值 , 可以保存在 xml 文件中 , 单位为 KB
int i = 20
// 如果上传文件的大小超过最大值 , 返回 flase, 否则返回 true.
if(hifile.PostedFile.ContentLength >i * 1024)
{
return false
}
return true
}
#endregion
#region 获取一个不重复的文件名 GetUniqueString
/// <summary>
/// 获取一个不重复的文件名
/// </summary>
/// <returns></returns>
public string GetUniqueString()
{
// 得到的文件名形如 :20050922101010
return DateTime.Now.ToString("yyyyMMddhhmmss")
}
#endregion
#region 删除指定文件 DeleteFile
/// <summary>
/// 删除指定文件
/// </summary>
/// <param name="strAbsolutePath">文件绝对路径 </param>
/// <param name="strFileName">文件名 </param>
public void DeleteFile(string strAbsolutePath, string strFileName)
{
// 判断路径最后有没有 \ 符号,没有则自动加上
if(strAbsolutePath.LastIndexOf("\\") == strAbsolutePath.Length)
{
// 判断要删除的文件是否存在
if(File.Exists(strAbsolutePath + strFileName))
{
// 删除文件
File.Delete(strAbsolutePath + strFileName)
}
}
else
{
if(File.Exists(strAbsolutePath + "\\" + strFileName))
{
File.Delete(strAbsolutePath + "\\" + strFileName)
}
}
}
#endregion
#region 上传文件并返回文件名 SaveFile
/// <summary>
/// 上传文件并返回文件名
/// </summary>
/// <param name="hifile">HtmlInputFile 控件 </param>
/// <param name="strAbsolutePath">绝对路径 . 如 :Server.MapPath(@"Image/upload") 与 Server.MapPath(@"Image/upload/") 均可 , 用 \ 符号亦可 </param>
/// <returns>返回的文件名即上传后的文件名 </returns>
public string SaveFile(HtmlInputFile hifile,string strAbsolutePath)
{
string strOldFilePath = "",strExtension = "",strNewFileName = ""
// 如果上传文件的文件名不为空
if(hifile.PostedFile.FileName != string.Empty)
{
strOldFilePath = hifile.PostedFile.FileName
// 取得上传文件的扩展名
strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf("."))
// 文件上传后的命名
strNewFileName = GetUniqueString() + strExtension
// 如果路径末尾为 \ 符号,则直接上传文件
if(strAbsolutePath.LastIndexOf("\\") == strAbsolutePath.Length)
{
hifile.PostedFile.SaveAs(strAbsolutePath + strNewFileName)
}
else
{
hifile.PostedFile.SaveAs(strAbsolutePath + "\\" + strNewFileName)
}
}
return strNewFileName
}
#endregion
#region 重新上传文件,删除原有文件 CoverFile
/// <summary>
/// 重新上传文件,删除原有文件
/// </summary>
/// <param name="ffFile">HtmlInputFile 控件 </param>
/// <param name="strAbsolutePath">绝对路径 . 如 :Server.MapPath(@"Image/upload") 与 Server.MapPath(@"Image/upload/") 均可 , 用 \ 符号亦可 </param>
/// <param name="strOldFileName">旧文件名 </param>
public string CoverFile(HtmlInputFile ffFile,string strAbsolutePath,string strOldFileName)
{
// 获得新文件名
string strNewFileName = GetUniqueString()
if(ffFile.PostedFile.FileName != string.Empty)
{
// 旧图片不为空时先删除旧图片
if(strOldFileName != string.Empty)
{
DeleteFile(strAbsolutePath,strOldFileName)
}
return SaveFile(ffFile,strAbsolutePath)
}
return ""
}
#endregion
}
}
至于保存嘛,简单了,上面已经有取得路径的代码。你把数据库 *** 作加进去就行了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)