前台: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="managedata.aspx.cs" Inherits="managedata" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title>无标题页</title> <link href="main.css" rel="stylesheet" type="text/css" /> <style type="text/css"> <!-- body{ margin:0; padding:0; font-family:Arial, Helvetica, sans-serif; font-size:12px;} .p1{ margin:70px 0 0 230px; vertical-align:bottom;} --> .p2{ margin:15px 0 0 230px; vertical-align:bottom;} .btn{ vertical-align:middle; height:25px; } </style> </head><body> <form id="form1" runat="server"> <p class="itemp"></p> <div > <table cellpadding="0" cellspacing="0" style="background-image: url(../Images/background.jpg); width: 644px; background-repeat: no-repeat; height: 400px"> <tr><td> <p class="p1"> <span >上传备份文件:</span><asp:FileUpload ID="FileUpload1" runat="server" Width="194px" CssClass="btn"/> <asp:Button ID="btnupload" runat="server" OnClick="btnupload_Click" Text="上传备份" ToolTip="把备份文件上传至服务器" CssClass="btn" CausesValidation="False" /> </p> <p class="p2"> 选择还原文件:<asp:DropDownList ID="DropDownList1" runat="server" Width="124px" CssClass="btn"></asp:DropDownList><asp:Button ID="btnreturn" runat="server" OnClick="btnreturn_Click" Text="还原备份" ToolTip="还原系统数据库" CssClass="btn" CausesValidation="False" /> <asp:Button ID="btndownload" runat="server" OnClick="btndownload_Click" Text="下载备份" ToolTip="下载备份" CssClass="btn" CausesValidation="False" /> </p> <p class="p2"> <span>备份文件名称:</span><asp:TextBox ID="TextBox1" runat="server" Width="117px" ></asp:TextBox> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="备份数据" ToolTip="备份系统数据库" CssClass="btn"></asp:Button> </p> </td> </tr> </table> </div> </form></body></html>
后台:
using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using System.IO; public partial class managedata : System.Web.UI.Page { public string bakpath = HttpContext.Current.Server.MapPath("../Backup"); protected void Page_Load(object sender, EventArgs e) { AdminCs.CheckLoginState(); //获取备份文件并添加到DropDownList if (!IsPostBack) { DropDownList1.Items.Clear(); string[] files = Directory.GetFiles(bakpath); foreach (string i in files) { string ii = i.Substring(i.LastIndexOf("//") + 1); DropDownList1.Items.Add(new ListItem(ii)); } } } //备份数据 protected void Button1_Click(object sender, EventArgs e) { string bakname = TextBox1.Text.Trim(); //去掉文件名中的非法字符 bakname = bakname.Replace("//", "").Replace("//", "").Replace("*", "").Replace(":", "").Replace("?", "").Replace("/"", "").Replace("<", "").Replace(">", "").Replace("|", ""); string sql = "backup database webzone to disk='" +bakpath+"//"+ bakname + ".bak'"; try { if (File.Exists(bakpath + "//" + bakname + ".bak")) { SQLcs.AlertShow("此文件已存在,请从新输入!", "managedata.aspx"); return; } if (SQLcs.DataOperater(sql)) { SQLcs.AlertShow("备份数据成功!","managedata.aspx"); } } catch { SQLcs.AlertShow("备份数据失败!", "managedata.aspx"); } } //还原备份 protected void btnreturn_Click(object sender, EventArgs e) { string str = DropDownList1.SelectedItem.Text; if (str == "") { SQLcs.AlertShow("请选择备份文件!", "managedata.aspx"); } string sql = "use master restore database webzone from disk='"+bakpath+"//"+ str+"'"; if (SQLcs.DataOperater(sql)) { SQLcs.AlertShow("还原数据成功!", "managedata.aspx"); } else { SQLcs.AlertShow("还原数据失败!", "managedata.aspx"); } } //下载备份文件 protected void btndownload_Click(object sender, EventArgs e) { string url = "../backup/" + DropDownList1.SelectedItem.Text.Trim(); string path = Server.MapPath("../backup"); FileInfo fi=new FileInfo(path+"//"+DropDownList1.SelectedItem.Text.Trim()); if (fi.Exists) { Response.Clear(); Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(DropDownList1.SelectedItem.Text.Trim())); Response.AddHeader("Content-Lenght", fi.Length.ToString()); Response.ContentType = "application/octet-stream;charset=gb2312"; Response.Filter.Close(); Response.WriteFile(fi.FullName); Response.End(); } } //上传备份 protected void btnupload_Click(object sender, EventArgs e) { string filename = FileUpload1.PostedFile.FileName; filename=filename.Substring(filename.LastIndexOf("//")+1); string val = filename.Substring(filename.LastIndexOf(".") + 1); if (val != "bak") { SQLcs.AlertShow("只能上传bak格式的文件!"); return; } try { FileUpload1.SaveAs(bakpath + "//" + filename); SQLcs.AlertShow("上传成功!","managedata.aspx"); } catch { SQLcs.AlertShow("上传失败"); } }}