Cette section est close pour le moment.
Mais je n'arrête pas la veille, loin de là. Retrouvez mes projets sur Github et sur cette page qui sera à jour plus régulierement


Ressources

Définition de ressource : (nom féminin) Qui peut fournir ce dont on a besoin.
Vous l'aurez compris, sur cette page ce ne sont pas vraiment des tutoriels, c'est plutôt des penses-bêtes plus ou moins fournis mais qui vous permettront d'avoir des bases concernant la programmation.
Recherche par tag

Forcer le téléchargement d'un fichier

Forcer le téléchargement d'un fichier
Publication : Le 16/10/2012 à 03:14:33

Introduction

Ça a du déjà vous arriver de vouloir télécharger un fichier et qu'à la place le document s'ouvre dans un autre onglet (par exemple les fichiers PDF). Il faut alors faire la manipulation : Clic droit, enregistrer la cible du lien sous, etc...

On va donc écrire un script va proposer la fenêtre de choix "Enregistrer ou Ouvrir le fichier".

Le script

On va envoyer l'url du document par paramètre et pointer le tout vers un nouveau script.

Ce script va se comporter comme dans un mail comportant une pièce jointe.

On va donc utiliser les en-têtes de fichier :

- Content-Type, le type de fichier
- Content-Transfer-Encoding, l'encodage du fichier
- Content-Length, taille du fichier
- Content-Disposition, le type MIME du fichier
- Expires, temps d'éxecution du script
- Cache-Control, comment on gère le cache

La fonction readfile() va lire le fichier et l'envoyer directement vers la sortie.
<?php
    $dir = "dossier/";
    $file = "fichier.png";

    $taille = filesize($dir . $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($dir . $file);
    exit();
?>
Ce script est à mettre dans une page distincte, et dans une condition.

Pour appeler le téléchargement il vous suffira de mettre en paramètre le fichier.
<a href="download.php?doc=fichier/doc.png" title="Download">Download</a>

Conclusion

A vous d'adapter le script pour que les deux bouts de code correspondent.

Un conseil, dans le fichier download.php, utilisez la fonction phpinfo().

Sur le même thème

Forcer le téléchargement d'un fichier
Publication : Le 16/10/2012 à 03:14:33

Tags

Tags : tutoriel / PHP

Suggestion :

Forcer le téléchargement d'un fichier

Forcer le téléchargement d'un fichier