le monde de crabs (Christophe Cazajus)

PHP : assurer le download d'un fichier

Introduction

Il est parfois utile dans ses scripts de passer au delà des 'mime type' par défaut pour permettre le téléchargement d'un fichier, afin que l'internaute n'ait plus qu'à nommer le fichier pour l'enregistrer.

Décomposition des actions

Afin de réaliser ce traitement, il faut :

Mon hypothèse de travail

Tous les fichiers qui peuvent être téléchargés sont dans le sous-dossier TELECHARGE du dossier contenant le script.

Toutes tentatives de détournement entraînera une erreur chez l'internaute

Du concret !!!

Trêve de blabla, on y va. Le script considère que le nom du fichier à télécharger est passé via un get dans la variable f.

if ( !array_key_exists( 'f', $_GET ) )
	die( 'y a un problème' ) ;
// protection sommaire mais efficace contre .. et /
$bf = str_replace( '/', '_', $_GET['f'] ) ;
$file = 'TELECHARGE/'.$bf ;
header( 'Content-type: application/octet-stream' ) ;
header( 'Content-Disposition: attachment; filename="'.$bf.'"' ) ;
header( 'Content-Length: '.filesize( $file ) ) ;
readfile( $file ) ;

Un script identique est utilisé sur ce site lorsque vous rencontrez une petite disquette...

Renseignez-vous sur les brevets logiciels en Europe :

NoSoftWarePatents.com (en français)

Les images représentant des sociétes, des associations ou des marques restent associées, par un lien, à ces sociétés, associations ou marques. Elles ne signifie en rien que ces sociétés, associations ou marques soutiennent ce site.

Sauf précisions contraire, le contenu de ce site est mis à disposition sous un contrat Creative Commons.

Les informations fournies le sont sans aucune garantie. L'auteur ne pourra être tenu responsable de leurs utilisations.

De par l'utilisation du HTML 4.01 Strict et des CSS 2.1, le monde de crabs sera correctement vu avec les navigateurs respectant ces normes, Mozilla ou FireFox par exemple.

Site : Le Monde de Crabs
Titre : PHP : assurer le download d'un fichier
Date du document : 09/10/2005
Auteur : Christophe Cazajus
Mail : crabs(mettre le @)crabs-world.com
ou utiliser ce formulaire de contact
Mots-clé : crabs, monde, francais, francophone, français, html, php, index, download, upload
Description : Script PHP permettant d'envoyer un fichier à un navigateur en affichant la fenêtre 'enregistrer sous'.
Validation : html, csshtml, ccs
The Linux Counter
Info iconelvis iconbash iconphp icongimp iconpovray iconxml iconxslt iconcss iconhtml icon
Slackware Linux
Creative Commons License

Le calendrier et les scores du Stade Toulousain sont accessibles sur cette page : Le monde de crabs et le Stade Toulousain.

Crabs's World : English Section