无法使用PHP和MySQL在浏览器上下载CSV文件
我需要将mysql记录下载到浏览器上的csv文件中,但根据我的代码,它不能按预期工作。这是我的密码:无法使用PHP和MySQL在浏览器上下载CSV文件,php,mysql,angularjs,csv,Php,Mysql,Angularjs,Csv,我需要将mysql记录下载到浏览器上的csv文件中,但根据我的代码,它不能按预期工作。这是我的密码: $scope.downloadAllCustomerData=function(){ var url2='../service/admin/customer/customer.php?action=downloadAllCustomerData'; var method='GET'; var data1=''; DataServic
$scope.downloadAllCustomerData=function(){
var url2='../service/admin/customer/customer.php?action=downloadAllCustomerData';
var method='GET';
var data1='';
DataService.connectToServerSideScript(method,url2,data1)
.then(function(response) {
console.log('response',response);
},function(error) {
})
}
这是我的客户端代码,它请求sevre下载.CSV
文件
if ($_REQUEST["action"]=="downloadAllCustomerData") {
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen("php://output", "w");
fputcsv($output, array('ID', 'Name', 'Email', 'MObile No'));
$sql = "SELECT user_id,name,email,mobile from cb_customer_info ORDER BY user_id DESC";
$stmt = $db->prepare($sql);
if ($stmt->execute()) {
$row = $stmt->fetchAll();
$number_of_rows= count($row);
if ($number_of_rows > 0) {
fputcsv($output, $row);
$data=array("status"=>1,"msg"=>"Downloaded all data successfully.");
}else{
$data=array("status"=>0,"msg"=>"No record found.");
}
fclose($output);
}
echo json_encode($data);
}
这里我试图将mysql记录下载到.csv文件中。我需要用户何时单击按钮,这些记录将在浏览器上下载。最好形成数据并将其回送/打印到浏览器,而不是使用php://output 小溪 常用的下载头
header("Content-Disposition: attachment;filename=\"".$file_name."\"");
header('Content-Type: '.$content_type);
header("Accept-Ranges: bytes");
header("Pragma: private");
header("Expires: -1");
header("Cache-Control: private, must-revalidate, post-check=0, pre-check=0");
header("Content-Length: ".$filesize);
我使用了所有的标题,但仍然是同一个问题。你能尝试直接在echo/print上转储数据吗?我喜欢
echo($output)代码>但它不是下载的。我正在粘贴下面的示例代码,标题(“内容配置:附件;文件名=\”.$file\u name.\”;标题(“内容类型:”.$Content\u Type);标题(“接受范围:字节”);标题(“Pragma:private”);标题(“到期:-1”);标头(“缓存控制:专用,必须重新验证,后检查=0,预检查=0”);标题(“内容长度:.$filesize”);打印$数据;ob_flush();冲洗();我按照你说的做了,但它在浏览器控制台中写入了所有数据,但没有下载任何csv文件。这是一个快速提醒,你没有“解释”你的代码。我理解英语不是你的第一语言,但这里有一个期望,当人们在你的措辞上提供帮助时,你会注意并改变方向。现在你没有理由仍然使用这种尴尬的措辞,因为你很清楚有一个更好的措辞。“这是我的密码”很好。