Vous êtes ici Codes PHP et MySQL > Fichiers-Répertoires > Forcer le téléchargement d'un fichier

 

Forcer le téléchargement d'un fichier

Forcer le téléchargement d'un fichier
 
Mathieu
[20] sources en PHP voir
Code vu 18353 fois
Enregistré le 01 Sept 2004
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Forcer le téléchargement d'un fichier
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Forcer le téléchargement d'un fichier                     */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts62-PHP.htm               */
/* Auteur         : Mathieu                                                   */
/* Date édition   : 01 Sept 2004                                              */
/*                                                                            */
/******************************************************************************/


// reconnait l'extension pour que le téléchargement
// corresponde au type de fichier afin d'éviter les erreurs de corruptions

switch(strrchr(basename($Fichier_a_telecharger), ".")) {

case ".gz"$type "application/x-gzip"; break;
case ".tgz"$type "application/x-gzip"; break;
case ".zip"$type "application/zip"; break;
case ".pdf"$type "application/pdf"; break;
case ".png"$type "image/png"; break;
case ".gif"$type "image/gif"; break;
case ".jpg"$type "image/jpeg"; break;
case ".txt"$type "text/plain"; break;
case ".htm"$type "text/html"; break;
case ".html"$type "text/html"; break;
default: $type "application/octet-stream"; break;

}

header("Content-disposition: attachment; filename=$Fichier_a_telecharger"); 
header("Content-Type: application/force-download"); 
header("Content-Transfer-Encoding: $type\n"); // ne pas enlever le \n
header("Content-Length: ".filesize($chemin $Fichier_a_telecharger)); 
header("Pragma: no-cache"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); 
header("Expires: 0"); 
readfile($chemin $Fichier_a_telecharger); 

?>

 

Fonctions du code

: Sépare le nom du fichier et le nom du dossier - (PHP 4, PHP 5)
: Trouve la dernière occurrence d'un caractère dans une chaîne - (PHP 4, PHP 5)
: Envoie un en-tête HTTP - (PHP 4, PHP 5)
: Lit la taille d'un fichier - (PHP 4, PHP 5)
: Affiche un fichier - (PHP 4, PHP 5)
Commentaires
Attention, si vous voulez utiliser ça sur un site qui tourne en https, il faudra retirer les lignes concernant le cache (ligne 45, 46, 47) pour mettre header('Pragma: cache') à la place sinon ceux qui ont IE ne pourront pas télécharger le fichier... pour en savoir plus : http://blogs.msdn.com/ieinternals/archive/2009/10/02/Internet-Explorer-cannot-download-over-HTTPS-when-no-cache.aspx En effet, IE plante si on tente de mettre en cache un fichier à télécharger quand on est en https... encore une bonne raison d'utiliser Firefox !!
 
 Merci pour le https 
un vrai casse tête 
c'est un coup de big brother
 
J'aimerais savoir si je peux utiliser ce code dans une page html? Je l'ai testé et ça ne fonctionne pas. Qu'est-ce que je dois faire si mon site est en html et que je veux utiliser ce code quandmême?

Merci!
 
Tu ne peux pas.. ici c'est du php, pas du html. De plus pour que ce code fonctionne il est nécéssaire de ne rien afficher à l'écran. Si tu n'y connais rien en php je te conseil vivement d'aller faire un tour sur phpfacile.com et de jeter un rapide coup d'oeil pour te faire une idée. Car sinon peu de chance que tu arrive à faire fonctionner ce script.

Bon courage.
 
 le script marche chez moi mais impossible de lire les fichiers téléchargés.. SVP vous pouvez m'aidez? Merci d'avance
 
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Fichiers-Répertoires

 
 

PHP

 
 
 
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
    Editeur PHP
 
        Publicité