Comment faire pour télécharger un fichier, puis rediriger vers une autre page en php?
Bon, j'ai le texte suivant fichier php:
<?php
header("Content-Type: application/octet-stream");
$file = $_GET["file"];
header("Content-Disposition: attachment; filename=" . urlencode($file));
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header("Content-Length: " . filesize($file));
$file = "pdf/".$file;
flush(); //this doesn't really matter.
$fp = fopen($file, "r");
while (!feof($fp)) {
echo fread($fp, 65536);
flush(); //this is essential for large downloads
}
if ($file="pdf/sampleFile.pdf") {
?>
<html>
<head>
<title>Best Recipes Ever!</title>
<link rel="stylesheet" href="style/style.css" />
</head>
<body>
<div id="header">
<h1>Best Recipes Ever!</h1>
</div>
<div id="page">
<h1>Thank You For Your Download!</h1>
<p>I sincerely hope that you enjoy this free recipe! If satisfied, please feel free to return and purchase some of my recipes. Trust me, you won't regret it!</p>
</div>
</body>
</html>
<?php
}
fclose($fp);
?>
L'idée est que, si ses le fichier d'exemple, il télécharge le fichier, puis redirige vers une page de remerciement. Cependant, si ses versé pour le téléchargement(s), ce fichier ne télécharge que les fichiers, mais ne fait rien (parce que la page qu'ils sont à venir à partir d'une liste d'acheté de téléchargement de fichiers liens, de sorte qu'elle doit rester sur la page en question).
Ce que cette page est en train de faire, cependant, est de télécharger le fichier mais n'a pas de redirection. Ce que je fais mal? Et comment puis-je résoudre ce problème?
"pdf/".$file
. n'est-ce pas une bonne idée. Ce que si je passe../../../../../srv/http/index.php
?- $this->redirect("VOTRE URL");
- double possible de PHP de générer des fichiers pour les télécharger ensuite rediriger
- Quatre-têtes content-type?!
- Ok redirection s'applique dans mvc, u peut utiliser header("location"); OU de la fenêtre.localisation via javascript.
- Non, ils ne le peuvent pas.
- Pourquoi ne pas quentin??
- Parce que "Ici est ce que vous avez demandé (fichier à télécharger)" et "Ce que vous avez demandé est là-bas" sont incompatibles consolidés.
- Ok.
Vous devez vous connecter pour publier un commentaire.
Meilleur pari est de faire tourner votre page de commande autour d'un peu. Mis en place une page c'est un "merci pour le téléchargement de cet exemple de page", et l'ont mis en place pour faire un javascript actualisation qui prend effectivement vous pour le télécharger. Comme c'est un téléchargement, pas une nouvelle page, la page de remerciement sera toujours là. Dans le cas où ils n'ont pas le javascript sur le navigateur, mettez un lien vers le fichier.
Vous pourriez avoir une page pour chaque fichier, mais le mieux serait de passer le nom de fichier comme obtenir var, c'est à dire
ThankYou.php?file=sample.pdf
ajouter un
header()
fonction de rediriger votre page après le téléchargement de succèsDe ressources de liaison(ici)
Location
en-tête s'attend à un URI absolu)header( "refresh:5;url=wherever.php" );
Ce code travaillé dans ma situation. Peut-être que ça vous aidera.
C'est la page principale:
Ce script dans la page principale:
Vous devez écrire votre code php pour le téléchargement dowload.php. Si dans download.php votre code ne télécharge que les fichiers, puis votre page principale ne sera pas rechargé. Ainsi, le script qui gère formulaire de travail.
Utiliser le langage html ou javascript, des redirections, car il fonctionne même si les en-têtes ont déjà été envoyés. Juste l'écho de cette si le téléchargement est un fichier d'exemple.
par exemple
HTML
JavaScript