方法5:上传文件 如果上传文件的扩展名和大小均合法,则将文件上传到服务器上,方法为:
#region SaveFile /// <summary> /// 上传文件并返回文件名 /// </summary> /// <param name="hifile">HtmlInputFile控件</param> /// <param name="strAbsolutePath">绝对路径.如:Server.MapPath(@"Image/upload")与Server.MapPath(@"Image/upload/")均可,用\符号亦可</param> /// <returns>返回的文件名即上传后的文件名</returns> 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 /// <summary> /// 重新上传文件,删除原有文件 /// </summary> /// <param name="ffFile">HtmlInputFile控件</param> /// <param name="strAbsolutePath">绝对路径.如:Server.MapPath(@"Image/upload")与Server.MapPath(@"Image/upload/")均可,用\符号亦可</param> /// <param name="strOldFileName">旧文件名</param> 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个方法,即可很方便的上传文件,同时又能对文件进行控制,是不是很方便?不过如果想上传大文件,还是建议使用专门的上传大文件控件。
|