J'utilise angulaire pour faire une requête POST sur un clic en utilisant le code suivant dans mon contrôleur ...POST angulaire ne fonctionne pas comme prévu (PHP)
var request = $http({
method: "post",
url: "../submit.php",
data: {
templateData: $scope.template
},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
J'envoie les données à un fichier php appelé submit.php
et tout fonctionne bien, submit.php
reçoit les données. La prochaine chose que je fais avec les données écrire dans un fichier ...
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$contentFile = fopen("file.txt", "w");
fwrite($contentFile, $template);
fclose($contentFile);
Cela semble fonctionner, je reçois pas d'erreurs. Mais maintenant, la prochaine chose que je veux arriver est de télécharger le fichier dans le navigateur. Ce code devrait fonctionner, mais il ne pas télécharger le navigateur pour une raison quelconque ...
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\"");
CODE COMPLET
<?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\"");
?>
Juste pour clarifier: vous voulez que la personne qui consulte votre site télécharge le fichier? Il n'y a pas vraiment moyen de forcer vos utilisateurs à télécharger quelque chose, car ce serait une grande faille de sécurité. – RobertAKARobin
@RobertAKARobtenir quelque chose comme ça, vous appuyez sur le bouton de téléchargement, et je veux qu'il prenne la chaîne pour l'écrire dans un fichier, qui le télécharge ensuite sur l'ordinateur de l'utilisateur – Bolboa
Que se passe-t-il maintenant? Le fichier (son contenu) est-il affiché dans le navigateur? – Jeff