PHP ile dosya indirmeye nasıl zorlanır

Kullanıcının PHP ile bir web sayfasını ziyaret etmesi üzerine bir dosyanın indirilmesini istiyorum. Bunun file_get_contents ile bir ilgisi olduğunu düşünüyorum, ancak nasıl çalıştırılacağından emin değilim.

$url = "http://example.com/go.exe";

Bir dosyayı header(location) ile indirdikten sonra başka bir sayfaya yönlendirmiyor. Sadece duruyor.

Yerleşik PHP işlevi readfile hakkındaki belgeleri okuyun

$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)

Ayrıca dosyanıza göre uygun içerik türünü eklediğinizden emin olun uygulama/zip, uygulama/pdf vb. - ancak yalnızca farklı kaydet iletişim kutusunu tetiklemek istemiyorsanız.

Yorumlar (5)
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"file.exe\""); 
echo readfile($url);

doğru

veya exe türü dosyalar için daha iyi bir tane

header("Location: $url");
Yorumlar (5)
<?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(); 
?>

Veya dosya tarayıcı ile açılamadığında, sadece Location başlığını kullanabilirsiniz:

<?php header("Location: http://example.com/go.exe"); ?>
Yorumlar (5)