Jump to content

Proposer des PDF en téléchargement


Recommended Posts

Salut,

Je voudrais proposer des documents PDF en telechargement sur mon site.

J'ai fait quelques recherches, mais je ne comprend pas pourquoi tout le monde par de "forcer" le telechargement!

Je ne veux forcer personne!!!

Si quelqu'un pouvais me donner quelques explications!

:unsure:

Link to post
Share on other sites

Quand tu mets un pdf en ligne il ne se télécharge pas quand le visiteur clique dessus mais il s'ouvre dans le navigateur. C'est peut etre pour ça qu'il faut "forcer" le téléchargement plutot que l'ouverture du document (?)

Link to post
Share on other sites

Voici un petit code pour frocer le téléchargement du fichier PDF:

$file = "document.pdf";

header("Content-Type: application/pdf");
header("Content-Length: ".filesize($file));
header("Content-Disposition: attachment; filename=".$file);
header("Location:".$file);

Ici on force le téléchargement de document.pdf

Link to post
Share on other sites

Tu peut mettre juste

if (ereg(".pdf",$_GET[file])) {
header("Content-Type: application/pdf");
header("Content-Length: ".filesize($_GET[file]));
header("Content-Disposition: attachment; filename=".$_GET[file]);
header("Location:".$_GET[file]);
}

dans une page(par exemple pdf.php), et appeler cette page par un lien comme celui-ci : <a href="pdf.php?file=document.pdf">Télécharger le fichier pdf</a>

PS: Le ereg(".pdf",$_GET[file]) c'est pour vérifier que le fichier à bien l'extension .pdf (sécurité).

Link to post
Share on other sites

D'accord,

Alors je met ce code (seul?) sur une page que j'appelle: appelpdf.php

Ensuite, sur une page de mon site, je place ceci:

<a href="appelpdf.php?file=document.pdf">Télécharger le fichier pdf</a>

document est le nom de mon doc .pdf.

Et dans le code de la première page, je met [file] ou je remplace file par document?

Merci de ta patience... :hypocrite:

Link to post
Share on other sites
Et dans le code de la première page, je met [file] ou je remplace file par document?

non, normalement dans ce code tu n'a rien a changer (si je n'ai pas fait de faute ;) )

Link to post
Share on other sites

J'ai fini par trouver un code qui marche très bien:

Créé une page nommée x.php avec ce code (ne pas sauter de ligne avant ou dans le code!!!):

<?

header("Content-type: application/pdf");

header("Content-Disposition: attachment; filename=$pdf");

readfile($pdf);

?>

Le recopier tel quel, ne rien changer.

Puis sur la page voulue, mettre un lien de la forme:

<a href="x.php?pdf=y.pdf">Télécharger le pdf</a>

Où y.pdf est le nom de votre document pdf.

Voilà, c'est tout simple.

Attention, dans cet exemple tout les fichiers sont dans le meme répertoire!!

Ca marche sous IE et Mozilla. :up:

Link to post
Share on other sites

en effet ce code marche (il faudrai que je revoi le mien ;) )

mais il faudrait penser à vérifier si le fichier à télécharger à bien l'extention pdf, parce que là par exemple si j'appel la page avec x.php?pdf=index.php et bien je récupère tout le code source de l'index du site, un très gros trou de sécurité donc.

Link to post
Share on other sites
Quand tu mets un pdf en ligne il ne se télécharge pas quand le visiteur clique dessus mais il s'ouvre dans le navigateur. C'est peut etre pour ça qu'il faut "forcer" le téléchargement plutot que l'ouverture du document (?)

Hum... Pourquoi compliquer inutilement les choses et vouloir "forcer" un comportement chez l'utilisateur ?

Il a le choix, avec les seuls fonctions de son navigateur, entre :

- cliquer le lien avec ouverture éventuelle dans son navigateur

- choisir dans son menu contextuel "enregistrer la cible sous..." (ou autre équivalent).

Bref, ce type de fonctionnalité devrait être laissé côté client, avec de simples liens directs du type :

<a href="blabla.pdf" title="pdf">bla bla</a>

Link to post
Share on other sites
Bref, ce type de fonctionnalité devrait être laissé côté client, avec de simples liens directs du type :

<a href="blabla.pdf" title="pdf">bla bla</a>

Bonjour,

Je suis du même avis, à une condition : que le format soit clairement identifiable, au minimum dans la barre d'état, au mieux par une note à côté du lien.

D'une manière générale, je trouve très désagréable de cliquer sur un lien qui ouvre autre chose qu'une page Web sans être prévenue.

Link to post
Share on other sites
Bonjour,

D'une manière générale, je trouve très désagréable de cliquer sur un lien qui ouvre autre chose qu'une page Web sans être prévenue.

a[title~=pdf]:after {

content: "\00A0[Ceci est un affreux PDF]";

}

;)

Edited by LaurentDenis
Link to post
Share on other sites
  • 2 weeks later...

a[title~=pdf]:after {

content: "\00A0[Ceci est un affreux PDF]";

}

est une règle CSS de "contenu généré" : dans les navigateurs respecteux de CSS2, tout lien du type :

<a href="..." title="attention: document pdf">...</a>

sera suivi de la mention [ceci est un affreux PDF]

Le principe est simple :

-le sélecteur a[title~=...] stipule que ça s'applique aux liens qui ont un attribut title d'un certain type

-le sélecteur :after stipule que ça doit intervenir juste après les liens en questions

-la règle content... signifie qu'il faut ajouter ce qui suit dans la page à cet endroit.

Bref, au moment où il applique la CSS à la page, le navigateur ajoute le contenu en question là où on lui demande

C'est apparemment génial... sauf que :

- ça ne marche pas dans IE, qui ne gère pas les contenus générés,

- ça ne marche pas dans tout autre navigateur ou media qui ignore les feuilles de styles.

Donc, c'était plutôt un clin d'oeil à Monique qu'une recommandation. Le plus simple est d'écrire en toute lettres dans sa page :

<a href="..." title="attention: document pdf">...</a> (PDF).

Edited by LaurentDenis
Link to post
Share on other sites

Je suis tout à fait d'accord avec mes illustres collègues Laurent et Monique. ;)

Pour ce que mon opinion vaut, je trouve que forcer le téléchargement est une pratique que je ne saurais encourager. Tout d'abord, l'utilisateur doit vivre avec le fait qu'il est pris dans une voie qu'il ne souhaitais pas (lancer une application, s'il la possède). Deuxièmement le PDF est un format propriétaire et pas accessible qui laisse certains utilisateurs de côté. Pourquoi ne pas recourir à du bon vieux HTML pas propriétaire pour deux sous ? La mise en page de tes pdf est-elle si compliquée que tes documents doivent absolument être présentés sous ce modèle ? Si oui, alors je te suggère d'y aller avec la porposition de Laurent pour définir par CSS un message d'avertissement au utilisateurs... Ce sera un moindre mal... en autant qu'ils supportent également CSS. ;)

Link to post
Share on other sites

Denis, je suis franchement revenu de ma vieille hostilité au pdf depuis que :

- j'ai vu que ce n'était pas tout à fait un "document de verre" figé, quand on prend la peine de faire un bon pdf, c'est à dire autre-chose qu'un bête scan papier ;

- le format propriétaire adobe joue le jeu des formats ouverts ;

- OpenOffice en particulier permet de gérer du pdf.

Tout ceci, à partir du moment où :

- on ne privilégie pas le pdf sur un html correctement imprimable (une css d'impression suffit pour un coût minime)

- on réserve le pdf aux documents qu'il serait trop coûteux de convertir en html, donc originellement "papier"

- ou bien on propose les deux formats en alternative "pdf ou html".

Finalement, en tant qu'utilisateur, je préfère un pdf propre que je peux lire à tête reposée à un html inimprimable ou trop coûteux pour moi à imprimer pour cause de balisage lamentable où les menus... ne peuvent être virés.

Link to post
Share on other sites

Je suis bien sûr d'accord avec toi... mais je préfèrerai toujours un bon document HTML capable de basculer à l'imprimé en un format adapté qu'un pdf qui me forcera au format... ne serait-ce que pour l'aspect d'universalité du format HMTL.

Dans mon cas, c'est purement idéologique puisque je ne souffre pas d'exclusion à ce niveau là, mais lorsqu'un expert en accessibilité reconnu mondialement me confie que le PDF accessible est possible en théorie mais une belle utopie en réalité, je ne peux endosser complètement le format propriétaire d'Adobe, pas plus que je ne peux endosser le format Flash.

Macromedia joue aussi le jeu du format propriétaire qui essaie de devenir sensiblement ouvert, mais il n'en demeure pas moins très ardu de faire du Flash accessible (qui peut aujourd'hui se vanter de pouvoir expliquer en une page comment faire ?). Dès le départ, le format est encapsulé. Travailler à le rendre accessible, c'est bien mais il ne faut pas oublier qu'au départ, pas sa propre nature, le format est exclusif.

Ceci dit, je sais apprécier un beau pdf bien construit pour lire à tête reposée au lit avant de dormir... ça me rapproche du livre... mais comme le HTML et les CSS le permettent aussi, le format est de moins en moins pertinent dans la plupart des cas.

Link to post
Share on other sites

Hum... Une différence, il me semble, d'après ce qu'Eric Daspet est venu me dire sur http://www.blog-and-blues.com/2004/avril/1...d_et_object.asp :

-Flash est un logiciel, c'est à dire strictement dépendant du plugin propriétaire.

-Adobe est plus ouvert, plus orienté "format" puisqu'il est (un peu) exploitable en dehors d'Adobe.

Quant à préférer un bon HTML capable de basculer à l'imprimer, on est exactement dans la problématique des standards "ouverts" et pas dogmatiques ;)

Tout le monde ne peut pas produire un HTML imprimable. En revanche, tout le monde peut produire un PDF propre, avec un minimum de formation à moindre coût.

Edited by LaurentDenis
Link to post
Share on other sites
  • 9 months later...

Et j'ajouterai un argument en faveur de la liberté de l'utilisateur... le forcer à télécharger un pdf risque de l'embrouiller (pour certains utilisateurs novices) et risque de ne pas marcher derrière un proxy qui n'accepterai pas d'enregistrer un fichier, alors que sa lecture directement sur le net sera possible.

Link to post
Share on other sites
  • 1 year later...

Bonjour, je suis nouvelle.

J'ai le même soucis je veux mettre un lien vers un fichier PDF sur mon site Ifrance, j'ai le code <A HREF=&quot;ftp://"> mais aucune fenetre pour me demander d'aller chercher mon fichier. Je sais pas ou et comment mettre mon fichier PDF, pouvez vous m'aider?

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...