Želim zahtevati, da se datoteka prenese, ko uporabnik obišče spletno stran s PHP. Mislim, da je to povezano z file_get_contents
, vendar nisem prepričan, kako to izvesti.
$url = "http://example.com/go.exe";
Po prenosu datoteke z header(location)
se ne preusmeri na drugo stran. Preprosto se ustavi.
Preberite dokumentacijo o vgrajeni funkciji PHP 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)
Poskrbite tudi, da dodate ustrezno vrsto vsebine glede na vašo datoteko application/zip, application/pdf itd. - vendar le, če ne želite sprožiti pogovornega okna za shranjevanje kot.
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"file.exe\"");
echo readfile($url);
je pravilen
ali boljša za datoteke tipa 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();
?>
Kadar datoteke ni mogoče odpreti z brskalnikom, lahko uporabite samo glavo Location
:
<?php header("Location: http://example.com/go.exe"); ?>