Je donne le lien d'un fichier pdf sur ma page Web à télécharger, comme ci-dessous
<a href="myfile.pdf">Download Brochure</a>
Le problème est lorsque l'utilisateur clique sur ce lien puis
- Si l'utilisateur a installé Adobe Acrobat, il ouvre le fichier dans la même fenêtre de navigateur dans Adobe Reader.
- Si Adobe Acrobat n'est pas installé, il apparaîtra à l'utilisateur pour le téléchargement du fichier.
Mais je veux qu'il soit toujours pop-up à l'utilisateur pour le téléchargement, indépendamment de "Adobe acrobat" est installé ou non.
S'il vous plaît dites-moi comment je peux faire cela?
"Content-type: application/force-download"
n'est répertorié nulle part ici: iana.org/assignments/media-types/application C'est un en-tête complètement faux. Veuillez ne pas créer d'en-têtes et les envoyer. Pourriez-vous mettre à jour votre réponse. Merci.fopen
.C'est un problème courant, mais peu de gens savent qu'il existe une solution HTML 5 simple:
Où
newfilename
est le nom de fichier suggéré à l'utilisateur pour enregistrer le fichier. Ou il sera par défaut le nom de fichier sur le serveur si vous le laissez vide, comme ceci:Compatibilité: j'ai testé cela sur Firefox 21 et Iron, les deux fonctionnaient bien. Cela peut ne pas fonctionner sur les navigateurs compatibles avec HTML5 ou obsolètes. Le seul navigateur que j'ai testé qui n'a pas forcé le téléchargement est IE ...
Vérifiez la compatibilité ici: http://caniuse.com/#feat=download
la source
Ne parcourez pas toutes les lignes de fichier. Utilisez plutôt readfile , c'est plus rapide. Ceci est en dehors du site php: http://php.net/manual/en/function.readfile.php
Assurez-vous de nettoyer votre variable get car quelqu'un pourrait télécharger des fichiers php ...
la source
Au lieu d'utiliser un script PHP, pour lire et vider le fichier, il est plus judicieux de réécrire l'en-tête en utilisant
.htaccess
. Cela gardera une "belle" URL (myfile.pdf
au lieu dedownload.php?myfile
).la source
^\.pdf$
expression régulière.J'ai trouvé un moyen de le faire avec du vieux HTML et JavaScript / jQuery qui se dégradent gracieusement. Testé dans IE7-10, Safari, Chrome et FF:
HTML pour le lien de téléchargement:
jQuery (du code JavaScript pur serait plus détaillé) qui simule un clic sur le lien après un petit délai:
Pour rendre cela plus robuste, vous pouvez ajouter la détection des fonctionnalités HTML5 et si ce n'est pas là, utilisez
window.open()
pour ouvrir une nouvelle fenêtre avec le fichier.la source
Voici la clé:
Une application de type contenu / document x-pdf ou application / pdf est envoyée lors de l'envoi du fichier PDF. Adobe Reader définit généralement le gestionnaire pour ce type MIME afin que le navigateur transmette le document à Adobe Reader lorsque l'un des types PDF MIME est reçu.
la source
Je sais que je suis très en retard pour répondre à cela mais j'ai trouvé un hack pour le faire en javascript.
la source
Essaye ça:
<a href="pdf_server_with_path.php?file=pdffilename&path=http://myurl.com/mypath/">Download my eBook</a>
Le code dans pdf_server_with_path.php est:
la source
Voici une approche différente. Je préfère plutôt que de compter sur la prise en charge du navigateur, ou de résoudre ce problème au niveau de la couche application, pour utiliser la logique du serveur Web.
Si vous utilisez Apache et que vous pouvez placer un fichier .htaccess dans le répertoire approprié, vous pouvez utiliser le code ci-dessous. Bien sûr, vous pouvez également le mettre dans httpd.conf, si vous y avez accès.
La directive FilesMatch est juste une expression régulière, elle peut donc être définie aussi précisément que vous le souhaitez, ou vous pouvez ajouter d'autres extensions.
La ligne Header fait la même chose que la première ligne des scripts PHP ci-dessus. Si vous devez également définir les lignes Content-Type, vous pouvez le faire de la même manière, mais je n'ai pas trouvé cela nécessaire.
la source
J'ai résolu le mien en utilisant toute l'url du fichier PDF (au lieu de simplement mettre le nom ou l'emplacement du fichier à href): a href = "domain. Com / pdf / filename.pdf"
la source
si vous devez limiter le taux de téléchargement, utilisez ce code !!
Pour plus d'informations cliquez ici
la source
la source
Dans une application Ruby on Rails (en particulier avec quelque chose comme la gemme Prawn et le plugin Prawnto Rails), vous pouvez accomplir cela un peu plus simplement qu'un script complet (comme l'exemple PHP précédent).
Dans votre contrôleur:
La partie render: layout => false indique au navigateur d'ouvrir la fenêtre "Voulez-vous télécharger ce fichier?" au lieu d'essayer de rendre le PDF. Ensuite, vous pourrez créer un lien vers le fichier normalement: http://monsite.com/myawesomepdf.pdf
la source