Jeg ønsker å kreve at en fil skal lastes ned når brukeren besøker en webside med PHP. Jeg tror det har noe å gjøre med file_get_contents
, men er ikke sikker på hvordan jeg skal utføre det.
$url = "http://example.com/go.exe";
Etter å ha lastet ned en fil med header(location)
blir den ikke omdirigert til en annen side. Den bare stopper.
Les dokumentasjonen om den innebygde PHP-funksjonen 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)
Sørg også for å legge til riktig innholdstype basert på filen din application/zip, application/pdf osv. - men bare hvis du ikke vil utløse lagre-som-dialogboksen.
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"file.exe\"");
echo readfile($url);
er riktig
eller en bedre en for exe-type filer
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();
?>
Eller, når filen ikke kan åpnes med nettleseren, kan du bare bruke overskriften Location
:
<?php header("Location: http://example.com/go.exe"); ?>