我能够正确地进行备份,但是当我添加代码以将其保存到不同的位置时,从中进行备份的页面的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>
如果我没有使用下载部分的代码,我正确地获得备份。因此,标题发送部分存在一些问题,我无法找到该文本的来源。
感谢。
引用的问题仅解决了在指定位置下载备份文件的问题,但我希望下载提示,以确定用户希望保存备份文件的位置。
问题标题如何更新我不是很确定,但我已经更新了相同的内容。
答案 0 :(得分:0)
确定找到了解决方案。 我唯一需要做的就是评论该行或删除
header('Content-Transfer-Encoding: binary');
现在我正确获取备份文件。感谢。