正 文

通过HtmlInputFile控件上传文件的类


www.7dspace.com  更新日期:2005-9-27 3:28:33  七度空间


方法5:上传文件
  如果上传文件的扩展名和大小均合法,则将文件上传到服务器上,方法为:

#region SaveFile
///


/// 上传文件并返回文件名
///

/// HtmlInputFile控件
/// 绝对路径.如:Server.MapPath(@"Image/upload")与Server.MapPath(@"Image/upload/")均可,用\符号亦可
/// 返回的文件名即上传后的文件名
public static 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


  该方法将文件上传后,会返回上传文件的新文件名,以备将此新文件名插入到数据库中。

  方法6:重新上传文件
  重新上传文件时,首先要将原来上传过的文件删除,然后上传新文件,并用新文件名覆盖数据库中的旧文件名,这样才完成了重新上传工作,实现代码如下:

#region CoverFile
///


/// 重新上传文件,删除原有文件
///

/// HtmlInputFile控件
/// 绝对路径.如:Server.MapPath(@"Image/upload")与Server.MapPath(@"Image/upload/")均可,用\符号亦可
/// 旧文件名
public static void CoverFile(HtmlInputFile ffFile,string strAbsolutePath,string strOldFileName)
{
//获得新文件名
string strNewFileName = GetUniqueString();

if(ffFile.PostedFile.FileName != string.Empty)
{
//旧图片不为空时先删除旧图片
if(strOldFileName != string.Empty)
{
DeleteFile(strAbsolutePath,strOldFileName);
}
SaveFile(ffFile,strAbsolutePath);
}
}
#endregion


  通过以上6个方法,即可很方便的上传文件,同时又能对文件进行控制,是不是很方便?不过如果想上传大文件,还是建议使用专门的上传大文件控件。
3页,当前在第3页  1  2  3  

上一篇:MySQL导出导入命令的用例
下一篇:Asp.net直接保存文件到客户端
作者:Kgdiwss  来源:太平洋电脑网 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐