Maison >développement back-end >tutoriel php >Comment puis-je forcer le téléchargement d'un fichier à l'aide de PHP ?

Comment puis-je forcer le téléchargement d'un fichier à l'aide de PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-24 04:55:14811parcourir

How Can I Force a File Download Using PHP?

Application des téléchargements de fichiers avec PHP

Lors de la navigation vers une page Web, comment pouvons-nous forcer le téléchargement d'un fichier à l'aide de PHP ?

Solution :

PHP fournit une fonction appelée readfile() à cet effet. En configurant les en-têtes et en utilisant readfile(), nous pouvons déclencher des téléchargements.

Mise en œuvre :

  1. Configurer les en-têtes :
    Définissez les en-têtes suivants pour inviter le download :

    header('Content-Type: application/octet-stream');
    header("Content-Transfer-Encoding: Binary"); 
    header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); 
    • Content-Type : Spécifie le type de fichier (par exemple, application/zip pour les fichiers ZIP).
    • Content- Transfer-Encoding : Garantit que les données binaires sont transférées avec précision.
    • Content-disposition : Définit l'option « pièce jointe » pour lancer un téléchargement et spécifie le nom du fichier à l'aide de la fonction basename() pour extraire le nom du fichier de l'URL.
  2. Utilisez readfile() :
    Utilisez readfile() pour lire le contenu du fichier et envoyez-les au navigateur :

    readfile($file_url); 
  3. Exemple :
    Pour télécharger un fichier nommé "go.exe" depuis "http://exemple .com/go.exe", utilisez le code suivant :

    $file_url = 'http://example.com/go.exe';
    header('Content-Type: application/octet-stream');
    header("Content-Transfer-Encoding: Binary"); 
    header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); 
    readfile($file_url); 

Supplémentaire Notes :

  • Assurez-vous de définir l'en-tête Content-Type approprié en fonction du type de fichier.
  • Le déclenchement d'un téléchargement avec l'en-tête (emplacement) peut entraîner un arrêt de l'exécution. au lieu d'une redirection de page.

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