2010-11-22 6 views

Répondre

0

Si vous mettez

header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename="blah.dat'); 

dans le fichier PHP qui sert le téléchargement, le navigateur sera toujours ouvrir une fenêtre de téléchargement, même pour les fichiers, il peut gérer lui-même.

+0

Alors, où pourrais-je mettre cela? J'ai une boucle imprimant des liens vers les fichiers. L'en-tête doit-il être inclus dans cette boucle? –

+0

Vous ne pouvez pas faire cela à partir de la page avec le lien, vous devez le faire dans la page qui est téléchargée. – AndreKR

+0

Voir ma réponse pour une solution si les fichiers de téléchargement sont statiques. – ThiefMaster

0

Réglage de la disposition du contenu approprié devrait fonctionner:

header('Content-Disposition: attachment'); 

Vous devez faire cela dans le script PHP qui envoie le contenu du fichier. Si les fichiers sont statiques et non desservis par PHP, vous pouvez aussi le faire en utilisant un fichier .htaccess (Apache lors de l'utilisation):

Header set Content-Disposition attachment 
2

Donc, pour aider à mettre tout cela ensemble pour vous.

Page 1 (L'utilisateur sélectionne un fichier à télécharger)

files_to_download.php (fichier utilisateur voit)

<a href="download.php?file=file1.pdf">PDF File</a> 
<a href="download.php?file=file1.doc">Word Doc File</a> 
<a href="download.php?file=file1.ppt">Power Point File</a> 

download.php (fichier qui est lié à)

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

// set your path 
$path = '/path/to/your/files/'; 

// you'd probably want to do some error check here 
// e.g. does file exist, etc. 

// start download 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename="' . $file . '"'); 
Questions connexes