Php: fichier en chargement

ah effectivement tu avais dit la même chose, mais différement.

Donc on peut dire que c’est un complément à ta réponse.

Oui mais ça n’en reste pas moins un gros hack et pour peut que le gars ai configuré sont navigateur pour qu’il ouvre les zip par exemple avec un winzip quelconque tu va bien te marrer :slightly_smiling:

Je ne pensai pas que ma question allai soulevé un débat aussi passionné!
Je n’ai pas encore eu le temps de mettre le formulaire sur le site.
Il va finir par étre périmé si je tarde trop …

Si tu utilises Apache et que mod_headers est disponible, tu peux très bien forcer les headers nécessaires à partir du fichier .htaccess :

Content-type: application/force-download Content-Disposition: attachment; filename=foobar.pdf

Je n’ai plus la syntaxe de mod_headers en tête, faudrait aller voir la doc d’Apache.

C’est, à mon sens, beaucoup plus simple à mettre en place qu’un script PHP, d’autant plus que celui que tu as présenté est une horreur au niveau sécurité (il permet à n’importe quel client web d’accéder à la totalité du filesystem, sans autre protection que les ACL standards sur les fichiers).

Edit : je viens de faire gaffe aux dates des posts, ma réponse arrive probablement trop tard mais espérons qu’elle servira au moins à quelqu’un d’autre.

Hello:

test.html

[code]

PDF télécharger [/code]

test.php

[code]<?php
$file=$_GET[‘file’];

$taille=filesize("$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("$file");
exit();

?>[/code]

et dans le répertoire où sont les scripts, il y a un fichier test.pdf.

J’ai testé et quand tu cliques sur le lien, ça ne t’ouvres pas directement le pdf mais ça te propose une boite te permettant d’ouvrir le pdf ou de l’enregistrer.