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