À l'aide de php pour forcer le téléchargement d'un fichier pdf
Im essayant d'obtenir un site web pour avoir un bouton qui force le téléchargement d'un fichier pdf.
Voici le code html du bouton:
<a href=scripts/download.php>
<input type="image" src="images/download.gif" alt="Submit button"/>
</a>
Et le script php:
<?php
header('Content-Type: application/pdf');
header('Content-disposition: attachment;filename=documents/ECM_IT_ResumeDownload.pdf');
readfile('documents/ECM_IT_ResumeDownload.pdf');
?>
Cela semble pour télécharger le fichier bien, mais quand je vais pour l'ouvrir, j'obtiens cette erreur:
"Adobe Reader n'a pas pu ouvrir 'documents_ECM_IT_ResumeDownload.pdf', parce que c'est pas un type de fichier pris en charge ou parce que le fichier a été endommagé (par exemple, il a été envoyé en tant que pièce jointe et n'a pas été correctement décodés)."
Toute aide serait grandement appréciée.
MODIFIER
Ouvert le pdf dans un éditeur de texte et reçu ce message:
"
Attention: readfile(documents/ECM_IT_ResumeDownload.pdf) [function.readfile]: failed to open stream: No such file or directory in html/scripts/download.php on line 4
"
Le document est bel et bien là. en html/documents/ECM_IT_ResumeDownload.pdf
Très probablement, quelque chose est à l'origine de la sortie d'inclure certains invalide le contenu pdf.. peut-être que le serveur est en train de jeter une erreur. Essayez d'ouvrir le fichier dans un éditeur de texte
Ahh je n'avait pas fait remarqué que j'avais fait pour un autre lien mais il n'a pas d'avis, j'ai encore eu que
Avez-vous essayé de comparer la source et les fichiers téléchargés?
Assurez-vous il n'y a pas d'espace après le
?>
, qui était devenu une partie de la télécharger. En fait, d'éliminer la ?>
tout cela devient un non-problème.OriginalL'auteur Craig Traynor | 2012-05-14
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé de se débarrasser de la balise de fermeture PHP (? >) à la fin? Elle traitera de la page comme un pur page PHP, en supprimant toute possibilité de nouvelles lignes, qui pourraient accidentellement ajouté à la fin de la sortie. Cela m'a aidé lorsque j'ai été de créer dynamiquement des fichiers excel à télécharger, et ils ont été téléchargement comme corrompu. Consultez cette page pour plus d'informations:
http://www.php.net/manual/en/language.basic-syntax.phptags.php
De votre édité question, il me semble que PHP est impossible de trouver le fichier. Essayez d'utiliser un chemin absolu vers le fichier comme suit: "c:\blah\de\blah\bloo.pdf" ou "c:/blah/de/blah/bloo.pdf". Si l'un de ces chemins de travaux et de téléchargements correctement, votre chemin d'accès relatif est incorrecte, d'une certaine façon.
Essayez un chemin absolu dans le readfile() appel: "c:/html/downloads/ECM_IT_ResumeDownload.pdf" ou quoi que ce soit.
Qui a fait le tour merci 🙂
Hoora! Pas de problème, avoir une bonne nuit 🙂
OriginalL'auteur abelito
OriginalL'auteur Mohammad Intsar
Essayez de supprimer le chemin d'accès au fichier et il suffit de laisser le nom de fichier dans le contenu:
OriginalL'auteur John Conde
J'ai toujours utiliser Gowon Patterson de téléchargement du script, il a également la protection hotlink:
http://by.gowondesigns.com/getfile/
OriginalL'auteur FluffyKitten
Par la manière, un peu en retard, mais pour bien cerner le problème ici:
Votre téléchargement de script est à
scripts/download.php
et le fichier que vous voulez télécharger est àdocuments/[...].pdf
.Par conséquent, votre
readfile()
fonction doit être traversant vers le répertoire parent (en dehors descripts/
), par exemplereadfile('../documents/[...].pdf');
.OriginalL'auteur M Miller