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

时间:2015-03-24 22:28:55

标签: php mysql

我能够正确地进行备份,但是当我添加代码以将其保存到不同的位置时,从中进行备份的页面的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>

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

感谢。

引用的问题仅解决了在指定位置下载备份文件的问题,但我希望下载提示,以确定用户希望保存备份文件的位置。

问题标题如何更新我不是很确定,但我已经更新了相同的内容。

1 个答案:

答案 0 :(得分:0)

确定找到了解决方案。 我唯一需要做的就是评论该行或删除

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

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