Je veux exiger qu'un fichier soit téléchargé lorsque l'utilisateur visite une page Web avec PHP. Je pense que cela a quelque chose à voir avec file_get_contents
, mais je ne sais pas comment l'exécuter.
$url = "http://example.com/go.exe";
Après avoir téléchargé un fichier avec header(location)
, il ne redirige pas vers une autre page. Il s'arrête simplement.
Lire la documentation sur la fonction PHP intégrée readfile
$file_url = 'http://www.myremoteserver.com/file.exe';
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url); // do the double-download-dance (dirty but worky)
Veillez également à ajouter le type de contenu approprié en fonction de votre fichier : application/zip, application/pdf, etc. - mais uniquement si vous ne voulez pas déclencher la boîte de dialogue "Enregistrer sous".
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"file.exe\"");
echo readfile($url);
est correct
ou un meilleur pour les fichiers de type exe.
header("Location: $url");
<?php
$file = "http://example.com/go.exe";
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"". basename($file) ."\"");
readfile ($file);
exit();
?>
Ou, lorsque le fichier ne peut pas être ouvert avec le navigateur, vous pouvez simplement utiliser l'en-tête Location
:
<?php header("Location: http://example.com/go.exe"); ?>