Maison >développement back-end >tutoriel php >Comment forcer les téléchargements de fichiers en PHP : garantir les téléchargements au lieu de la lecture ?

Comment forcer les téléchargements de fichiers en PHP : garantir les téléchargements au lieu de la lecture ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-15 07:43:02719parcourir

How to Force File Downloads in PHP: Ensuring Downloads Instead of Playback?

Comment lancer des téléchargements forcés de fichiers en PHP

Forcer les téléchargements de fichiers au lieu de simplement créer un lien vers eux peut être crucial pour empêcher la lecture vidéo indésirable dans navigateurs. Ceci est particulièrement pertinent lorsque les fichiers vidéo résident sur des serveurs externes. Heureusement, PHP propose une solution à ce scénario.

Pour forcer les téléchargements à l'aide de PHP, envisagez l'approche suivante :

1. Configurer les en-têtes :

header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=\"". $file_name . "\"");
  • Content-Type : Spécifie que le contenu est un flux d'octets, qui est un flux de données binaire.
  • Content-Transfer-Encoding : Indique que les données sont transférées au format binaire.
  • Content-disposition : Définit la pièce jointe et le nom du fichier à télécharger.

2. Appelez la fonction readfile() :

readfile($file_url);
  • readfile() tente de lire le contenu d'un fichier et de l'écrire dans le tampon de sortie actuel.
  • $file_url est l'URL distante où le fichier est hébergé.

3. Empêcher toute sortie ultérieure :

exit;
  • Cette ligne garantit qu'aucun contenu supplémentaire n'est affiché une fois le téléchargement lancé.

Considérations supplémentaires :

  • Pour que readfile() accède à l'URL distante, assurez-vous que fopen_wrappers est activé.
  • Cette méthode lance le téléchargement quel que soit le type de fichier. Pour des types de fichiers spécifiques, envisagez d'utiliser les fonctions intégrées de PHP comme header('Location: ...') ou unlink().

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn