文件上传至服务器文件夹存储,管理上有点不如存在数据库中方便。如果更新文件时,需要做文件操作,删除原来旧的文件,再上传新的文件。
下面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);
}
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);
}