Forcer les téléchargements de fichiers en PHP : gestion des fichiers distants
Forcer les téléchargements de fichiers au lieu de les ouvrir dans le navigateur peut être crucial pour les fichiers multimédias. Pour gérer ce scénario, où les vidéos résident sur un serveur distinct, PHP propose une solution qui implique de manipuler les en-têtes HTTP.
// Locate the file. $file_name = 'file.avi'; $file_url = 'http://www.myremoteserver.com/' . $file_name; // Configure HTTP headers for forced download. header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=\"". $file_name . "\""); // Initiate the download process. readfile($file_url); // Terminate the script to prevent any further output. exit;
En définissant le Content-Type sur application/octet-stream, nous indiquons que le fichier est un flux binaire à télécharger. Content-Transfer-Encoding : Binary garantit que le format binaire du fichier reste intact. Enfin, Content-disposition with attachment garantit que l'utilisateur est invité à télécharger le fichier au lieu de l'ouvrir dans le navigateur.
Notez que readfile nécessite que fopen_wrappers soit activé pour accéder aux fichiers à partir d'une URL distante. En utilisant cette technique, vous pouvez forcer efficacement le téléchargement de fichiers stockés sur un serveur distinct, offrant ainsi une expérience plus conviviale aux visiteurs de votre site Web.
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!