ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Çoğu modern tarayıcı, PHP betiği gibi herhangi bir sunucu tarafı kodu olmadan belirli türdeki dosyaların otomatik olarak indirilmesine izin verir. Örneğin, bir zip dosyası veya bir EXE dosyası.
Bir HTML köprüsü bir ZIP veya EXE dosyasına işaret ediyorsa, tarayıcı bunu indirir ve bir kaydetme iletişim kutusu açar. Ancak, metin dosyaları, resim dosyaları vb. indirilmez ancak tarayıcıda açılır ve bunları yerel dosya sisteminize kaydedebilirsiniz.
readfile() Fonksiyonu
Bu tür dosyaları indirmek için (tarayıcının bunları otomatik olarak açması yerine), PHP'nin yerleşik fonksiyon kütüphanesindeki readfile() fonksiyonunu kullanabiliriz.
Bu fonksiyon bir dosyayı okur ve çıktı tamponuna yazar.
İkinci parametre $use_include_path varsayılan olarak false'tur, dolayısıyla geçerli dizindeki dosya indirilecektir. true olarak ayarlanırsa, php.ini yapılandırmasının include_path ayarına eklenen dizinler indirilecek dosyayı bulmak için aranacaktır.
readfile() fonksiyonu, başarılı bir şekilde tamamlansa bile okunan bayt sayısını veya false değerini döndürür.
Örnek
Aşağıdaki PHP betiği readfile() fonksiyonunun kullanımını göstermektedir.
Bir dosyayı indirmek için, Content-Type yanıt başlığı application/octect-stream olarak ayarlanmalıdır . Bu MIME türü ikili dosyalar için varsayılandır. Tarayıcılar genellikle bunu yürütmez veya hatta yürütülüp yürütülmemesi gerektiğini bile sormaz.
Ayrıca, Content-Disposition başlığını ek olarak ayarlamak "Farklı Kaydet" iletişim kutusunun açılmasını sağlar.
PHP:
<?php
$filePath = 'welcome.png';
// Set the Content-Type header to application/octet-stream
header('Content-Type: application/octet-stream');
// Set the Content-Disposition header to the filename of the downloaded file
header('Content-Disposition: attachment; filename="'. basename($filePath).'"');
// Read the contents of the file and output it to the browser.
readfile($filePath);
?>
Yukarıdaki betiği "download.php" olarak belge kök klasörüne kaydedin. İndirilecek dosyanın aynı klasörde bulunduğundan emin olun.
Sunucuyu başlatın ve tarayıcıda
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
adresini ziyaret edin. Aşağıdaki gibi bir "Farklı Kaydet" iletişim kutusu göreceksiniz:
Bir isim seçip dosyayı indirebilirsiniz.
Büyük bir dosya için, onu dosya akışından belirli bir önceden tanımlanmış boyuttaki parçada okuyabilirsiniz. Tarayıcı, önceki örnekte olduğu gibi İçerik-Durumu başlığı "ek" olarak ayarlanmışsa, onu yerel dosya sistemine kaydetmeyi teklif eder.