Forcé un telechargement

  • Auteur de la discussion Auteur de la discussion fabrice88
  • Date de début Date de début
WRInaute occasionnel
Bonjour,
je souhaite pour les fichiers pdf qui sont sur mon site que lorsque l'internaute clique sur le lien du pdf qu'il le telecharge au lieu de l'ouvrir

actuellement j'essai de faire celà :
dans ma page ou j'ai mes liens pdf je met :

Code:
<a href="download-doc.php?file=../cartes/carte-des-Vins.pdf">telecharger </a>

ensuite j'ai créé un page php download-doc.php

Code:
<?php 
$file=$_GET['file']; 

//telechargement 
$taille=filesize("../carte/$file"); 
header("Content-Type: application/force-download; name=\"$file\""); 
header("Content-Transfer-Encoding: binary"); 
header("Content-Length: $taille"); 
header("Content-Disposition: attachment; filename=\"$file\""); 
header("Expires: 0"); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache"); 
readfile("../carte/$file"); 
exit(); 
?>


mais sa ne fonctionne pas j'ai un ta d'erreurs du genre :

Warning: filesize() [function.filesize]: stat failed for ../carte/carte-des-Vins.pdf in /var/www/monsite.com/download-doc.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at /var/www/monsite.com/download-doc.php:5) in /var/www/monsite.com/download-doc.php on line 6

Warning: Cannot modify header information - headers already sent by (output started at /var/www/monsite.com/download-doc.php:5) in /var/www/monsite.com/download-doc.php on line 7

Warning: Cannot modify header information - headers already sent by (output started at /var/www/monsite.com/download-doc.php:5) in /var/www/monsite.com/download-doc.php on line 8

Warning: Cannot modify header information - headers already sent by (output started at /var/www/monsite.com/download-doc.php:5) in /var/www/monsite.com/download-doc.php on line 9

Warning: Cannot modify header information - headers already sent by (output started at /var/www/monsite.com/download-doc.php:5) in /var/www/monsite.com/download-doc.php on line 10

Warning: Cannot modify header information - headers already sent by (output started at /var/www/monsite.com/download-doc.php:5) in /var/www/monsite.com/download-doc.php on line 11

Warning: Cannot modify header information - headers already sent by (output started at /var/www/monsite.com/download-doc.php:5) in /var/www/monsite.com/download-doc.php on line 12

Warning: readfile(../carte/carte-des-Vins.pdf) [function.readfile]: failed to open stream: No such file or directory in /var/www/monsite.com/download-doc.php on line 13
 
WRInaute accro
A mon avis c'est un souci de path de fichier. Quand tu passes ton fichier en GET via le premier lien, tu spécifies a priori déjà le nom du dossier, et tu concatènes ce même nom de dossier un peu plus loin, dans la page de download, à ce même nom de fichier.
 
WRInaute occasionnel
Bonjour et merci. effectivement en fesant cette modification sur le chemin du fichier sa fonctionne parfaitement maintenant pour la version du site en français.

juste encore un probléme avec la traduction automatique de google qui refuse le telechargement du fichier et qui continu a l'aficher au lieu de le telecharger...
 
WRInaute occasionnel
merci pour cete utre solution mais si je met le code dans mon htacess sa me plante tout le site 'erreur 500'

sur mon site j'utilsie une traduction des pages automatique en 3 langue avec google translator.
lorsque je clique sur mon lien pdf, au lieu de le telecharger comme dans la version non traduite du site, le fichier est ouvert au lieu d'etre telecharger.
Savez vous si il existe une possibilité de contré le probleme qui vient du fait certainement que la page est traduite automatiquement ?
 
WRInaute passionné
fabrice88 a dit:
Savez vous si il existe une possibilité de contré le probleme qui vient du fait certainement que la page est traduite automatiquement ?

Bonjour,

Personnellement je ne peux pas répondre directement à ta question mais je pense sincèrement que tu devrais plutôt utiliser la solution .htaccess en essayant de comprendre pourquoi tu obtiens l'erreur 500. Je pense que ce genre de solution est plus "adaptée" si tu veux après gérer des traductions etc...

Si tu as besoin d'aide n'hésites pas...
 
Discussions similaires
Haut