在我的主要PHP文件中,我將一個數組傳遞給客戶端,我正在使用angular。這就是我呼應......被稱爲迴音阻塞標頭功能
header('Content-Type: application/json');
echo json_encode($response); //array passed to client
現在在我的角度控制,我通過GET請求採取此數據...
$http.get("../server.php").success(function(data) {
$scope.names = data;
});
我在index.php
有一個下載按鈕,點擊後中,控制器採用此數據並進行POST請求我的submit.php
文件,發送所述數組寫入此文件...
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
//array converted to a string called $template
$contentFile = fopen("file.txt", "w");
fwrite($contentFile, $template);
fclose($contentFile);
陣列被轉換成字符串,然後令狀十個文件。到此爲止,一切正常。但最後一塊代碼是從來沒有被稱爲...
header('Pragma: anytextexeptno-cache', true);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: text/plain");
header("Content-Disposition: attachment; filename=\"file.txt\"");
我試圖強制下載,但頭功能被忽略。我認爲這是由於上面代碼的第一段摘錄中最初的echo
聲明。
我該如何解決這個問題?我怎樣才能防止echo語句取消標題功能?我需要重定向頁面嗎?
但是,如果我把它放在echo語句之前,強制下載將永遠不會被調用,因爲我需要將該數組回顯到角度,然後將其傳遞給創建文件並允許用戶下載文件的腳本。我認爲如果我把它放在echo語句之前,就沒有什麼可以下載的,只有一個空文件 – Bolboa