Webmaster Hub: Proposer des PDF en téléchargement - Webmaster Hub

Aller au contenu

  • 2 Pages +
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Proposer des PDF en téléchargement Noter : -----

#1 L'utilisateur est hors-ligne   Gribouille26 

  • Groupe : Hubmaster
  • Messages : 1 565
  • Inscrit(e) : 19-mars 04
  • Localisation:Lugdunum

  Posté 05 avril 2004 - 13:40

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:
0

#2 L'utilisateur est hors-ligne   Berberber 

  • webmaster
  • Groupe : Hubmaster
  • Messages : 827
  • Inscrit(e) : 22-mars 04
  • Localisation:Warszawa

Posté 05 avril 2004 - 13:47

peut etre que forcer veut dire, ne pas proposer d'alternative au telechargement, en html par exemple

Ce message a été modifié par textalyser - 05 avril 2004 - 13:48.

0

#3 L'utilisateur est hors-ligne   Gribouille26 

  • Groupe : Hubmaster
  • Messages : 1 565
  • Inscrit(e) : 19-mars 04
  • Localisation:Lugdunum

  Posté 05 avril 2004 - 13:59

Bah, je sais pas... :(
0

#4 L'utilisateur est hors-ligne   ams51 

  • Artisan du Web
  • Groupe : Membre+
  • Messages : 1 267
  • Inscrit(e) : 22-mars 04
  • Genre:Homme
  • Localisation:Izeaux
  • Société:Travailleur Indépendant

Posté 05 avril 2004 - 14:12

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 (?)
Arnaud.
Forex - Conversion monnaie - Taux de change
Je n'ai jamais rencontré d'homme si ignorant qu'il n'eut quelque chose à m'apprendre. Galilée
0

#5 L'utilisateur est hors-ligne   Gribouille26 

  • Groupe : Hubmaster
  • Messages : 1 565
  • Inscrit(e) : 19-mars 04
  • Localisation:Lugdunum

  Posté 05 avril 2004 - 14:15

Ah, je crois qu'on tient une piste!
Ca semble très logique....
"Quand un clic sur un lien vers un doc PDF, il s'ouvre! D'où forcer le telechargement."

On avance.
Va t'on avoir un piti code?
:D
0

#6 L'utilisateur est hors-ligne   Country 

  • Groupe : Membre
  • Messages : 213
  • Inscrit(e) : 08-novembre 03
  • Localisation:Quimper (29)

Posté 05 avril 2004 - 15:54

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
Ajaxload : icones d'activités personalisées pour les traitements Ajax
-=K1der=- The Chocolat Effect
0

#7 L'utilisateur est hors-ligne   Gribouille26 

  • Groupe : Hubmaster
  • Messages : 1 565
  • Inscrit(e) : 19-mars 04
  • Localisation:Lugdunum

Posté 05 avril 2004 - 16:27

Merci, mais je place ça où?
Et le lien, je le fais comment? :yoot:
0

#8 L'utilisateur est hors-ligne   Country 

  • Groupe : Membre
  • Messages : 213
  • Inscrit(e) : 08-novembre 03
  • Localisation:Quimper (29)

Posté 05 avril 2004 - 18:27

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é).
Ajaxload : icones d'activités personalisées pour les traitements Ajax
-=K1der=- The Chocolat Effect
0

#9 L'utilisateur est hors-ligne   Gribouille26 

  • Groupe : Hubmaster
  • Messages : 1 565
  • Inscrit(e) : 19-mars 04
  • Localisation:Lugdunum

Posté 05 avril 2004 - 18:33

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:
0

#10 L'utilisateur est hors-ligne   Country 

  • Groupe : Membre
  • Messages : 213
  • Inscrit(e) : 08-novembre 03
  • Localisation:Quimper (29)

Posté 05 avril 2004 - 21:57

Gribouille26, le lundi 05 avril 2004, 19:33, dit :

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 ;) )
Ajaxload : icones d'activités personalisées pour les traitements Ajax
-=K1der=- The Chocolat Effect
0

#11 L'utilisateur est hors-ligne   Gribouille26 

  • Groupe : Hubmaster
  • Messages : 1 565
  • Inscrit(e) : 19-mars 04
  • Localisation:Lugdunum

Posté 06 avril 2004 - 11:25

J'ai essayé, mais ça marche pas! :(

J'ai recopier le code encadré dans une page appelpdf.php, puis un lien vers cette page comme tu me le disait, mais ça marche pas!?

Si vous voullez jetter un oeil....
http://epiceequitabl...sociation01.htm
0

#12 L'utilisateur est hors-ligne   Gribouille26 

  • Groupe : Hubmaster
  • Messages : 1 565
  • Inscrit(e) : 19-mars 04
  • Localisation:Lugdunum

  Posté 06 avril 2004 - 13:56

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:
0

#13 L'utilisateur est hors-ligne   Country 

  • Groupe : Membre
  • Messages : 213
  • Inscrit(e) : 08-novembre 03
  • Localisation:Quimper (29)

Posté 07 avril 2004 - 16:21

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.
Ajaxload : icones d'activités personalisées pour les traitements Ajax
-=K1der=- The Chocolat Effect
0

#14 L'utilisateur est hors-ligne   Gribouille26 

  • Groupe : Hubmaster
  • Messages : 1 565
  • Inscrit(e) : 19-mars 04
  • Localisation:Lugdunum

Posté 07 avril 2004 - 17:20

Ok,
Je vais checher! :rolleyes:
0

#15 L'utilisateur est hors-ligne   LaurentDenis 

  • Groupe : Membres
  • Messages : 1 243
  • Inscrit(e) : 26-mars 04

Posté 12 avril 2004 - 08:03

ams51, le lundi 05 avril 2004, 15:12, dit :

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>

#16 L'utilisateur est hors-ligne   Monique 

  • Le Web à tous
  • Groupe : Hubmaster
  • Messages : 3 952
  • Inscrit(e) : 19-août 03
  • Genre:Femme
  • Localisation:rue Georges Mabile, Havré
  • Société:Webatou

Posté 12 avril 2004 - 10:45

LaurentDenis, le lundi 12 avril 2004, 09:03, dit :

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.
Amicalement,
Monique
en campagne pour des sites de qualité, conformes aux standards et accessibles... avec mon navigateur préféré (Firefox) et les Bonnes pratiques qualité pour les sites Web (Opquast)
Webatou : accessibilité et qualité des sites Web
0

#17 L'utilisateur est hors-ligne   LaurentDenis 

  • Groupe : Membres
  • Messages : 1 243
  • Inscrit(e) : 26-mars 04

Posté 12 avril 2004 - 17:07

Monique, le lundi 12 avril 2004, 11:45, dit :

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]";
}

;)

Ce message a été modifié par LaurentDenis - 12 avril 2004 - 17:08.


#18 L'utilisateur est hors-ligne   Gribouille26 

  • Groupe : Hubmaster
  • Messages : 1 565
  • Inscrit(e) : 19-mars 04
  • Localisation:Lugdunum

Posté 21 avril 2004 - 13:23

Denis: c'est quoi ce code? ;)

Je pense mettre un lien vers l'ouverture de mon pdf et un autre vers son enregistrement ainsi chacun est averti et libre de faire ce qu'il veut. :D
0

#19 L'utilisateur est hors-ligne   LaurentDenis 

  • Groupe : Membres
  • Messages : 1 243
  • Inscrit(e) : 26-mars 04

Posté 21 avril 2004 - 16:15

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

Ce message a été modifié par LaurentDenis - 21 avril 2004 - 16:16.


#20 L'utilisateur est hors-ligne   Denis 

  • Assainisseur Web
  • Groupe : Membre
  • Messages : 1 387
  • Inscrit(e) : 15-avril 04
  • Genre:Homme
  • Localisation:Montréal
  • Société:WebConforme

Posté 21 avril 2004 - 16:39

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. ;)
Denis Boudreau, assainisseur Web
Corporatif : webconforme.com | Associatif : w3qc.org
0

Partager ce sujet :


  • 2 Pages +
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)