使用PHP备份Mysql数据库,并在下载时在自定义指定位置下载备份


Mysql Database backup using PHP and download the backup at a custom specified location at download time

我可以正确地进行备份,但当我添加代码以将其保存到不同位置时,进行备份的页面的html会插入标题中。

这是我的代码:

$cmd=''.$drive .':'wamp'bin'mysql'mysql5.6.12'bin'mysqldump 
--user='.$user.' --password='.$pass .' --host=localhost  hospitalerp   > 
'.$outputfilename.'';

exec($cmd, $output, $return);
if ($return != 0) { //0 is ok
    die('Error: ' . implode("'r'n", $output));
}else{
    echo 'Backup taken successfully';
}
//Download the database file
            header('Content-Description: File Transfer');
            header('Content-Type: application/octet-stream');
            header('Content-Disposition: attachment; filename='.($outputfilename));
     //var_dump($myheader);exit;
            header('Content-Transfer-Encoding: binary');
            header('Expires: 0');
            header('Cache-Control: must-revalidate');
            header('Pragma: public');
            header('Content-Length: ' . filesize($outputfilename));
            ob_clean();
            flush();
            readfile($outputfilename);
            //After download remove the file from server
            exec('rm ' . $outputfilename);

在标题中的备份文件中,我得到了不想要的网页html文本,如:

<!DOCTYPE html>
<html lang="en-US">
<head>
    <meta charset="UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="csrf-param" content="_csrf">
    <meta name="csrf-token" content="MlEzRldGbG53HnwHHg4tKkg2eDYiDl9DQwh.GRUkJwt7GmYRFSIEIg==">
    <title></title>
    <link href="/hospitalerp/web/assets/69b3a339/css/bootstrap.css" rel="stylesheet">
<link href="/hospitalerp/web/css/site.css" rel="stylesheet">
<link href="/hospitalerp/web/css/custom.css" rel="stylesheet"></head>
<body>
    <div class="wrap">
        <nav id="w0" class="navbar-inverse navbar-fixed-top navbar" role="navigation">
<div class="container"><div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#w0-collapse"><span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>

如果我没有使用下载部分的代码,我将正确获得备份。因此,在页眉发送部分存在一些问题,我无法从文本中找到问题的来源。

谢谢。

提到的问题只涉及在指定位置下载备份文件,但我希望在下载时提示用户希望将备份文件保存在哪里。

问题标题需要如何更新我不太确定,但我已经更新了。

OK找到了解决方案。我唯一需要做的就是要么注释行要么删除

header('Content-Transfer-Encoding: binary');

现在我正在正确获取备份文件。谢谢