Aller au contenu

Proposer des PDF en téléchargement


Gribouille26

Sujets conseillés

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:

Lien vers le commentaire
Partager sur d’autres 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 (?)

Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres 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é).

Lien vers le commentaire
Partager sur d’autres 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:

Lien vers le commentaire
Partager sur d’autres 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 ;) )

Lien vers le commentaire
Partager sur d’autres 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:

Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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>

Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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]";

}

;)

Modifié par LaurentDenis
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

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).

Modifié par LaurentDenis
Lien vers le commentaire
Partager sur d’autres 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. ;)

Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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.

Modifié par LaurentDenis
Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...