Rechercher : dans
Par :

Télécharger PDF

Dernière réponse le 2 jui 2008 à 20:27:21 Kopernicus, le 30 déc 2002 à 00:45:46 
 Signaler ce message aux modérateurs

Bonsoir,
Voil@, sur mon site, je souhaite faire télécharger des fichiers pdf. Quand on clique sur le lien, le fichier s'ouvre ds Acrobat Reader. Comment faire pour empêcher celui-ci de s'ouvrir avc le fichier et forcer l'affichage de la traditionnelle fenêtre de téléchargement du navigateur ?
A vos idées, merci.
@@@

Meilleures réponses pour « Télécharger PDF » dans :
6 applications professionnelles pour votre iPhone Voir6 applications professionnelles pour votre iPhone Pratique et au design séduisant, l’iPhone d’Apple est entré en été 2007 sur le marché avec un très grand succès. Avec déjà des fonctionnalités pré-intégrées performantes, Apple propose en plus sur...
Publier un fichier PDF sur son site VoirSommaire: Publier un PDF sur son site Conseils Afficher un PDF intégré à une page Téléchargement Convertir un PDF en SWF (Flash) Publier le SWF Astuces et conseils Publier un PDF sur son site Publier un fichier PDF en ligne est en...
Télécharger Cute PDF VoirCute PDF Writer (anciennement CutePDF printer) est un logiciel gratuit permettant de créer des fichiers PDF. Il s'installe comme imprimante virtuelle, permettant de générer du PDF à partir de n'importe quelle application capable d'imprimer. CutePDF a...
Télécharger Quick Word to PDF VoirPour transférer vos documents le plus en sécurité possible, il n'y a pas mieux que le format PDF. Alors, pour convertir vos documents Word en PDF, adoptez le programme quick Word to PDF. Quick Word to PDF est un outil qui s'intègre à l'interface de...

1

Eaulive, le 30 déc 2002 à 06:57:04

À moins que je ne me gourge, ce sont les propriétés de ton navigateur qu'il faut revoir. Dans mon cas avec IE6, le document .pdf s'affiche dans la fenêtre de mon navigateur car acrobat reader est pris en charge par IE (ou l'inverse ;-), mais avec NS7, j'ai une fenêtre acrobat qui s'ouvre à part.

SLU ;-)

Si tu n'es pas sûr de comprendre la réponse,
ne pose pas la question...
Eaulive.

Répondre à Eaulive

2

ipl, le 30 déc 2002 à 09:48:12

Bonjour Kopernicus, Eaulive, bonjour à tous,

Eaulive, si j'ai bien compris, Kopernicus ne veux pas que le pdf ouvre une fenêtre Acrobat Reader, ni dans IE ni à part, il voudrait, dans son cas, faire ouvrir la boîte de téléchargement.

Kopernicus, ta question m'interesse mais je ne sais pas répondre.. à part un clic droit et "enregistrer la cible sous..." ou enregistrer au format .zip.

@12C4
Ipl

Répondre à ipl

3

Eaulive, le 30 déc 2002 à 18:05:56

Bonjour à vous deux.

Tu as raison Gérard, il était tard et j'avais mal compris ;-)

Pour la solution je n'en vois pas d'autre non plus pour l'instant.

Si tu n'es pas sûr de comprendre la réponse,
ne pose pas la question...
Eaulive.

Répondre à Eaulive

4

ipl, le 30 déc 2002 à 18:11:39

Rebonsoir à tous,

Enfin CCM en ligne ! :-)

@12C4
Ipl

Répondre à ipl

5

Eaulive, le 30 déc 2002 à 18:12:56

Ah bon, il était tombé???

Je viens juste d'arriver ;-)

Si tu n'es pas sûr de comprendre la réponse,
ne pose pas la question...
Eaulive.

Répondre à Eaulive

6

ipl, le 31 déc 2002 à 00:12:28

Hello Eaulive,

Oui CCM est tombé entre 9h30 et 18h :-(

@12C4
Ipl

Répondre à ipl

7

Kopernicus, le 31 déc 2002 à 00:44:02

Bonjour à Eaulive, ipl et les autres
En effet, je ne souhaite pas que Acrobat s'ouvre. Mais je ne veux pas non plus recourir au clic droit car pas tjrs respecté. Je voulais aussi éviter la compression, mais apparemment il n'y a pas de solution pour empêcher ce Reader d'Acrobater. Donc je vais ziper.
Merci à tous.
@@@

Répondre à Kopernicus

8

ipl, le 31 déc 2002 à 10:53:40

Bonjour Kopernicus, bonjour à tous,

Je me souviens (trop vaguement) d'un fil de discussion semblable sur All-Html au sujet de fichiers Word à télécharger et non à ouvrir dans l'app !
Un membre (pilier) d'ALL-Html avait un programme développé par sa soc. qui faisait çà sans problème... çà c'était en fin 2001... je crois me souvenir que c'était un Canadien... il faudrait :
-demander à Bobinours si çà lui rappelle quelque chose
-faire quelques recherches sur le forum
-reposer la question là-bas
(j'avais aussi récupéré le programme sur mon disque dur, parmi les milliers d'autres prgrammes).

Kopernicus... as-tu grand besoin de cette fonction ? veux-tu déclancher une "procédure plus lourde" (telle que décrite ci-dessus) ?

@12C4
Ipl

Répondre à ipl

9

Kopernicus, le 31 déc 2002 à 22:23:16

Bonjour à tous
Je te remercie bcp ipl. Le pb ne se pose pas avc word : il ne s'execute pas avc les docs word, c'est la fenetre de téléchargement qui s'ouvre.
En fait, je n'ai pas envie de me casser la tete avc ça, je n'ai que 3 docs pdf, donc je les ai zipés.
Bonne année à tout le monde.
@++

Répondre à Kopernicus

10

Bobinours, le 2 jan 2003 à 06:14:57
  • +1

Arf, justement on parle de moi ;-)

Eaulive, c'est effectivement une configuration du navigateur, mais cela peut être forcé grace à l'entête HTTP.

Kopernicus : Ce n'est pas très compliqué si tu utilises un langage serveur. Voici comment faire avec PHP : http://www.php.net/manual/fr/function.header.php

<?php
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=downloaded.pdf");

/* ... output pdf file ... */
?>

En gros, il te faut faire un lien vers un fichier PHP qui envera un entête HTTP approprié à l'aide de la fonction HEADER() et dans lequel on ouvrira le fichier PDF et on PRINTera son contenu.

Le nom du fichier pourra être mis en paramètres du fichier d'URL pour rendre générique.
(Attention ! Dans ce cas il faut sécuriser pour ne par qu'on puisse télécharger n'importe quel fichier comme un fichier PHP ou un fichier avec des mots de passe...).

-= Bobinours - http://bobin.underlands.org =-

Répondre à Bobinours

22

 Mouradif, le 2 jui 2008 à 20:27:21

Concernant la sécurité, le mieux est d'avoir soir une table dans la bdd soit un array qui recense les fichiers téléchargeables pour pouvoir faire un lien du style

<a href="telecharger.php?id=2">

dans le cas de Bases de données, il faudra donc dans "telecharger.php" récupérer le nom du fichier d'id $_GET['id'] (ici 2) pour l'utiliser dans header().

pour ce qui est des array, un truc du style
$pdf = array ( 
	"fichier1.pdf",
	"fichier2.pdf",
	...
	)

devrait suffire. Ensuite dans "telecharger.php" :
$id = $_GET['id'];
$filename = $pdf[$id];

Désolé pour le manque d'explications, c'est juste que je suis un peu pressé :p. Si vous trouvez que ce n'est pas assez explicite, envoyez moi un mp

Répondre à Mouradif

11

Kopernicus, le 2 jan 2003 à 16:02:36

Bonjour;

Je te remercie Bobinours. Malheureusement, je développe en ASP.
N'y aurait-il pas simplement un paramètre à rajouter dans la ligne de commande ?

@++

Répondre à Kopernicus

12

Kopernicus, le 2 jan 2003 à 16:07:54

... PS : Sebsauvage aurait peut-être une solution; il a une rubrique sur le sujet dans son site.

@++

Répondre à Kopernicus

13

Bobinours, le 2 jan 2003 à 16:32:48

Je ne sais pas comment écrire dans le Header HTTP en ASP, mais c'est quasiment certain que c'est faisable. Pour le reste, le principe reste le même.

-= Bobinours - http://bobin.underlands.org =-

Répondre à Bobinours

14

sebsauvage, le 6 jan 2003 à 11:05:22

Me v'là. Bonne année à tous.

Pour les PDF:

En envoyant le type MIME application/pdf (ce qui devrait en principe être utilisé pour les PDF), tu ne sais pas à l'avance comment se comportera le navigateur de l'internaute (ouverture directe du PDF dans le navigateur ou sauvegarde).

C'est pour cela qu'il est généralement préférable de choisir le type MIME application/octet-stream.
La grande majorité des navigateurs proposera de sauvegarder le fichier.


Et quand on ne peut pas avoir le contrôle des types MIME renvoyés par le serveur HTTP (ex: hébergeurs gratuits), mieux vaut le zipper (dans ce cas, la majorité des seveurs HTTP utilisent le type application/octet-stream, application/zip ou application/x-zip-compressed).

Répondre à sebsauvage

15

Bobinours, le 6 jan 2003 à 11:57:54

Salut sebsauvage,
Je ne suis pas tout à fait d'accord avec toi.

"application/octet-stream" est utilisé pour les fichiers dont on ne connait pas le format (à défaut d'être un flot de données).
Sous Mozilla, les fichier octet-steram sont enregistrés sans extension.

Alors qu'il existe le "Content-Disposition" prévu à cet effet ;-)

-= Bobinours - http://bobin.underlands.org =-

Répondre à Bobinours

18

sebsauvage, le 7 jan 2003 à 10:04:44

Autant pour moi !
Je n'ai jamais lu la RFC jusqu'au bout :-.

Répondre à sebsauvage

19

Bobinours, le 7 jan 2003 à 10:25:19

Je te rassure, moi non plus ;-)

-= Bobinours - http://bobin.underlands.org =-

Répondre à Bobinours

16

Kopernicus, le 6 jan 2003 à 15:20:00

Bonjour à tous,

Pour info, voici une réponse que j'ai eue dans un autre forum (solution en-tête en asp) :

Response.AddHeader "content-disposition","attachment; filename=tonfichier.pdf"

NB : je n'ai pas vérifié...
Bonne journée.
@++

Répondre à Kopernicus

17

Bobinours, le 6 jan 2003 à 19:32:52

Je préfère nettement ça, kopernicus, qui semble correspondre à la notation que j'indiquais en PHP.

-= Bobinours - http://bobin.underlands.org =-

Répondre à Bobinours

20

gio, le 25 aoû 2004 à 15:09:30

Je suis tomber dessus par hazard et moi aussi j'en ai ch... avec les plugins senser nous faciliter la vie...

voici un script php...


+++++++++++++++++++++
<?php

$file = $_GET["file"];
download($file);
function download($file, $name = false, $type = false, $down = true) {
if(!file_exists($file)){
print "error";
exit;
}
if(!$name) $name = basename($file);
if($down) $type = "application/force-download";
else if(!$type) $type = "application/download";
$disp = $down ? "attachment" : "inline";
#header ("HTTP/1.0 204 No Content" );
header("Content-disposition: ".$disp."; filename=$name");
header("Content-length: ".filesize($file));
header("Content-type: ".$type);
header("Connection: close");
header("Expires: 0");

readfile($file);
exit;
}
?>
++++++++++++++++++++++++++

ca marche avec toutes les extensions

pour le faire fonctionner

http://www.monsite.com/download.php?file=monfichier.pdf

voilou....

a+ gio

Répondre à gio

21

riri974, le 24 jui 2007 à 18:59:30
  • +1

Je me suis permis de reprendre ton code et de rajoute une sécurité :

<?php
if(($_GET['type']=='pdf')||($_GET['type']=='zip'))
{
$file ="./".$_GET['file'].".".$_GET['type'];
download($file);
}
else
exit("type de fichier interdit");


function download($file, $name = false, $type = false, $down = true)
{
if(!file_exists($file)){
print "error";
exit;
}
if(!$name) $name = basename($file);
if($down) $type = "application/force-download";
else if(!$type) $type = "application/download";
$disp = $down ? "attachment" : "inline";
#header ("HTTP/1.0 204 No Content" );
header("Content-disposition: ".$disp."; filename=$name");
header("Content-length: ".filesize($file));
header("Content-type: ".$type);
header("Connection: close");
header("Expires: 0");

readfile($file);
exit;
}
?>

Répondre à riri974