我使用的角度進行使用在我的控制器下面的代碼點擊一個POST請求......工作不正常(PHP)角度支柱
var request = $http({
method: "post",
url: "../submit.php",
data: {
templateData: $scope.template
},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
我將數據發送到一個PHP文件名爲submit.php
並且一切正常,submit.php
接收數據。接下來我要處理的數據是寫入文件...
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$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\"");
全碼
<?php
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$template = "";
foreach ($request as $data) {
foreach ($data as $sub) {
for ($i = 0; $i < count($sub); $i++) {
$template .= $sub[$i];
}
}
}
$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\"");
?>
只是爲了澄清:你希望查看你的網站的人下載文件?沒有辦法強制用戶下載某些內容,因爲這會是一個很大的安全漏洞。 – RobertAKARobin
@RobertAKARobin類似的東西,你按下載按鈕,我希望它把字符串寫到一個文件,然後將它下載到用戶的計算機 – Bolboa
現在發生了什麼?瀏覽器中顯示的是文件(它的內容)嗎? – Jeff