Kullanıcıların paypal, clickbank ve paydotcom yoluyla satın alacak bir dosya var. Benim sunucuda dosya indirme sayfasını barındırması gerekir.
Benim public_html klasörünün dışında bir dizine dosyanın koydum. Klasör örneğin public_html denilen ve "yükleme" olarak aynı seviyede.
Aşağıdaki komut dosyası yapmak gerekiyordu, ama ben onunla iki sorun var olduğu ...
1) Çok güvenli görünmüyor. sadece sorgu dizesi bir ödeme onay belirteci kontrol?
2) Ben yolda benim site.com ortak klasörüne dahil olmadan indirme klasörüne işaret $ yol değişkeni olamaz. Ben $ yolunu echo Örneğin, ben olsun
/home/myuser/public_html/mysite.com
Ama çözmek gerekiyor
/home/myuser/download/myprotectedfile.zip
Bunu yapmak için daha güvenli ya da akıllı bir yolu vardır eminim, o yüzden soruyorum ...
<?php
// place this code inside a php file and call it f.e. "download.php"
$path = $_SERVER['DOCUMENT_ROOT']."/path2file/"; // change the path to fit your websites document structure
$fullPath = $path.$_GET['download_file'];
if ($fd = fopen ($fullPath, "r")) {
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
switch ($ext) {
case "pdf":
header("Content-type: application/pdf"); // add here more headers for diff. extensions
header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); // use 'attachment' to force a download
break;
default;
header("Content-type: application/octet-stream");
header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
}
header("Content-length: $fsize");
header("Cache-control: private"); //use this to open files directly
while(!feof($fd)) {
$buffer = fread($fd, 2048);
echo $buffer;
}
}
fclose ($fd);
exit;
// example: place this kind of link into the document where the file download is offered:
// <a href="download.php?download_file=some_file.pdf">Download here</a>
?>
Ben iş için bu almak yaşıyorum sorun benim site.com başvuru içerir $ yolunun değerdir, ancak indirme dizini site.com dışında. Ben dosya indirme tutan dizine işaret etmek için bir seviye bir başvuru kalkmak gerekir.
Ben daha önce de belirtildiği gibi, Ayrıca, ben bunu nasıl emin değilim bu (güvenli olan bir şekilde beklenen bir sorgu dizesi değeri denetimi dışında)
Şimdiden teşekkürler!