Asp.net更新文件夹的文件

时间:2023-01-19 18:10:54

文件上传至服务器文件夹存储,管理上有点不如存在数据库中方便。如果更新文件时,需要做文件操作,删除原来旧的文件,再上传新的文件。

下面Insus.NET写了一个更新方法,代码中有中文注释,仅供参考:

  // 检查上传的文件是否被大小限制
         if  ( this .FileUpload1.PostedFile.ContentLength  >   104857600 )
        {
            objInsusJsUtility.JsAlert(
" You select the file larger than 100MB " );
            
return ;
        }

        
// 定义一个临时文件夹
         string  tempPath  =   " ~/Temp/ " ;

        
// 判断是否存在。
         if  ( ! Directory.Exists(Server.MapPath(tempPath)))
        {
            
// 如果不存在,创建它。
            Directory.CreateDirectory(Server.MapPath(tempPath));
        }

        
// 上传文件
         string  uploadfile  =  FileUpload1.PostedFile.FileName;
        
// 取得上传文件原来名称
         string  oldFileName  =  uploadfile.Substring(uploadfile.LastIndexOf( @" \ " +   1 );
        
// 取得上传文件的扩展名
         string  fileExtension  =  uploadfile.Substring(uploadfile.LastIndexOf( " . " ));
        
// 产生新的文件名
         string  newFileName  =  objGuid.ToString()  +  fileExtension;
      
        
string  newFile  =  Server.MapPath(tempPath  +  newFileName);
        
// 把文件保存至临时文件夹中
        FileUpload1.SaveAs(newFile);

        
// 定制可上传的文件格式
         string [] fileClass  =  {  " 7076 " " 4838 "  };   // 7076 is FLV;4838 is wmv;
       
// 比较上传的文件是否为可上传的文件
         if  ( ! InsusBase.CompareFileClass(newFile, fileClass))
        {
            objInsusJsUtility.JsAlert(
" You did not specify a media file.The file format is wmv,flv " );
            
return ;
        }

        
// 从数据库取得此笔记录的信息
        DataRow objDataRow  =  objMedia.GetFileByPrimaryKey(objDictionary[ " PrimaryKey " ].ToString()).Rows[ 0 ];
        
// 从数据库取出旧的文件名包括路径
         string  o_file  =  objDataRow[ " Directory " ].ToString()  +  objDataRow[ " NewFileName " ].ToString();
        
// 从数据库取出路径与新文件名组合
         string  n_file  =  objDataRow[ " Directory " ].ToString()  +  newFileName;
        
try
        {
           
            
// 首先删除磁盘上旧文件
            File.Delete(Server.MapPath(o_file));

            
// 更新数据库记录
            objMedia.Update(oldFileName, newFileName, objDictionary[ " PrimaryKey " ].ToString());
           
// 从临时文件夹把文件移至真正的目录中
            File.Move(newFile, Server.MapPath(n_file));
            objInsusJsUtility.JsAlert(
" 视频更新成功。 " , " this " , " MediaEdit.aspx " );
        }
        
catch  (Exception ex)
        {           
           
            
// 如果执行期间出现异常,抛出。
            InsusBase.InsusException(ex);
        }