From ea76bdaf5135236c25e0c8ffa6aed894adaadaa3 Mon Sep 17 00:00:00 2001 From: Scott Ullrich Date: Sun, 25 Sep 2011 22:49:08 -0400 Subject: Add download backup feature --- .../www/system_firmware_restorefullbackup.php | 29 +++++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/usr/local/www/system_firmware_restorefullbackup.php b/usr/local/www/system_firmware_restorefullbackup.php index 8c2975c..8d9567c 100755 --- a/usr/local/www/system_firmware_restorefullbackup.php +++ b/usr/local/www/system_firmware_restorefullbackup.php @@ -50,7 +50,6 @@ ini_set('max_input_time', '0'); /* omit no-cache headers because it confuses IE with file downloads */ $omit_nocacheheaders = true; - require_once("functions.inc"); require("guiconfig.inc"); require_once("filter.inc"); @@ -59,8 +58,26 @@ require_once("shaper.inc"); if($_POST['overwriteconfigxml']) touch("/tmp/do_not_restore_config.xml"); -if ($_GET['backupnow']) { +if($_GET['backupnow']) mwexec_bg("/etc/rc.create_full_backup"); + +if($_GET['downloadbackup']) { + $filename = $_GET['downloadbackup']; + session_cache_limiter('public'); + $fd = fopen($filename, "rb"); + header("Content-Type: application/octet-stream"); + header("Content-Length: " . filesize($filename)); + header("Content-Disposition: attachment; filename=\"" . + trim(htmlentities(basename($filename))) . "\""); + if (isset($_SERVER['HTTPS'])) { + header('Pragma: '); + header('Cache-Control: '); + } else { + header("Pragma: private"); + header("Cache-Control: private, must-revalidate"); + } + fpassthru($fd); + exit; } if ($_GET['deletefile']) { @@ -126,7 +143,7 @@ include("head.inc"); $counter++; $size = exec("gzip -l /root/$arf | grep -v compressed | awk '{ print $2 }'"); echo ""; - echo ""; + echo ""; echo " $arf"; echo ""; echo ""; @@ -135,9 +152,13 @@ include("head.inc"); echo ""; echo format_bytes($size); echo ""; - echo ""; + echo ""; echo ""; echo gettext("Delete"); + echo " | "; + echo ""; + echo gettext("Download"); + echo ""; echo ""; echo ""; } -- cgit v1.1