Eu quero exigir que um arquivo seja baixado quando o usuário visitar uma página da web com PHP. Eu acho que tem algo a ver com file_get_contents
, mas não tenho certeza de como executá-lo.
$url = "http://example.com/go.exe";
Depois de baixar um arquivo com header(location)
ele não está redirecionando para outra página. Ele simplesmente pára.
Leia os documentos sobre a função PHP embutida 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)
Certifique-se também de adicionar o tipo de conteúdo adequado com base no seu arquivo aplicação/zip, aplicação/pdf etc. - mas somente se você não quiser acionar o diálogo salvar como.
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"file.exe\"");
echo readfile($url);
está correto
ou melhor um para arquivos do tipo 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, quando o arquivo não pode ser aberto com o navegador, você pode apenas utilizar o cabeçalho Location
:
<?php header("Location: http://example.com/go.exe"); ?>