Téléchargement
illégal
Posez votre question Signaler

Forcer le téléchargement d'un fichier .pdf

Spanish_ 52Messages postés 9 novembre 2003Date d'inscription - Dernière réponse le 16 mai 2012 à 14:15
Bonjour ,
Je créé actuellement un site et sur une de mes pages , j'ai créé une liste déroulante pouvant permettre de télécharger des cours en .pps et .pdf.
Pour les .pps j'ai eu du mal mais c'est ok maintenant tandis que pour les .pdf , il m'ouvre bien la fenetre de telechargement de mon navigateur avec le logiciel adobe. Cependant quand je veux le lire directement ou quand il est téléchargé, adobe reader s'ouvre mais avec un message d'erreur:
"Adobe n'a pas pu ouvrir le fichier car le type de fichier n'est pas pris en charge ou le fichier est endommagé (il a été envoyé en tant que pièce jointe et n'a pas été décodé correctement, par exemple)."
Sur mon fichier "redirection_navigation.php" j'ai inscrit ce code là:
Code :
<?php
function fct_download($nom_fichier)
{
// infos du fichier
$fichier = "/Telechargements/Cours_Systemes_et_reseaux/$nom_fichier";
// téléchargement du fichier
header('Content-disposition: attachment; filename='.$nom_fichier);
header('Content-Type: application/pdf');
header('Content-Transfer-Encoding: binary\n');
header('Content-Length: '.filesize($fichier));
header('Pragma: no-cache');
header('Cache-Control:must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($fichier);
}
switch($_POST['Cours'])
{
case "systemes_exploitation":
header("Location:http://pc.fastoche.free.fr/...");
break;
case "presentation_reseaux": header("Location:http://pc.fastoche.free.fr/...");
break;
case 'Reseau_Introduction': fct_download('Reseau_Introduction.pdf');
break;
}
?>
Que puis-je modifier pour que ce fichier .pdf soit lisible une fois télécharger par les visiteurs?
MErci d'avance
Bonne journée
Lire la suite 

Forcer le téléchargement d'un fichier .pdf »

12 réponses
Réponse
+4
moins plus
Tout simplement, il faut l'enregistrer dans un dossier. Par la suite, il s'ouvre normalement ;)
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour, je pense avoir la solution à votre problème !

(j'explique en partie pourquoi votre fichier pèse 0 octet ! ;) )
http://webinfobazar.com/header-location-telechargement-dun-fichier-php/

Pour ce qui concerne le pdf, je devrais incessamment sous peu mettre en ligne un article sur la création et le téléchargement d'un pdf ;)
Ajouter un commentaire
Réponse
+0
moins plus
As-tu trouver la solution car j'ai la même erreur que toi ?

erreur: "Adobe n'a pas pu ouvrir le fichier car le type de fichier n'est pas pris en charge ou le fichier est endommagé (il a été envoyé en tant que pièce jointe et n'a pas été décodé correctement, par exemple)."


Merci de répondre
domi - 10 mars 2010 à 09:19
Salut!

As tu résolu ton problème de pièces jointes? J'ai le même problème et je n'arrive pas à le résoudre! Je ni comprend rien avec leur charabia sur le forum!
Si tu peux m'éclairer ce serai cool, merci!
Ajouter un commentaire
Réponse
+0
moins plus
pareille que vous les gars, je peux les lire directement dans le naviguateur,

par contre , quand il ya la boîte de téléchargement, j'ai le même message que vous :(

Je ne vois pas d'où ça vient :)
Ajouter un commentaire
Réponse
+0
moins plus
si ton site est en php cherche pas plus loin ta réponse est ici : http://naeh.net/forcer-le-telechargement-dun-fichier-avec-php/

c'est valable pour tous types de fichiers.
Ajouter un commentaire
Réponse
+0
moins plus
Slt à tous, moi je n'arrivais ni à lire, ni à télécharger des fichiers pdf du net comme beaucoup d'entre vous . J'ai tout simplement désinstallé carrément mon logiciel 'Internet Download Manager', et dépuis, je n'ai plus aucun problème avec les fichiers pdf. Après cela, pour télécharger directement le document pdf lorsque vous l'avez ouvert, vous cliquez sur << fichier >> en haut à gauche du document pdf puis sur << enregistrer une copie...>> puis vous verez la suite.
Ajouter un commentaire
Réponse
+0
moins plus
La solution est peut-être du côté su forum Site du Zéro :
http://www.siteduzero.com/forum-83-653650-p1-telechargement-fichier-pdf.html
J'ai eu le même problème.
J'ai appliqué la solution préconisée : dans le fichier où se trouve le code php il ne faut que ce code php et rien d'autre.
le fichier ne doit donc contenir que quelque chose du type :

<?php
	if (isset($_GET['pdf']))
	{
		if (file_exists($_GET['pdf']))
		{
			$ext = pathinfo($_GET['pdf'], PATHINFO_EXTENSION);
			if ($ext == "pdf")
			{
				header("Content-Type: application/pdf");
				header("Content-Length: ".filesize($_GET['pdf']));
				header("Content-Disposition: attachment; filename=".$_GET['pdf']);
				header('Pragma: public');
				header('Expires: 0');
				readfile($_GET['pdf']);
			}
		}
	}
?>
Ajouter un commentaire
Réponse
-2
moins plus
Même problème que vous...
Une solution?

Merci
bethany - 3 déc. 2008 à 16:02
Bonjour,

Pour ceux qui cherchent et tomberaient là dessus: il faut mettre un "exit();" après le readfile ;)

Voilaaaa
uzul33 - 24 déc. 2008 à 15:15
ça ne semble pas changer quoi que ce soit en ce qui me concerne le fichier downloadé pèse toujours 0 octet
Jillian08 - 1 févr. 2012 à 17:20
Idem pour moi...
Ajouter un commentaire
Ce document intitulé « Forcer le téléchargement d'un fichier .pdf » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?