v2.5.2
Giriş yap

Download ?

aydinkeskin
990 defa görüntülendi

Üye aldığı ürünü üye panelinden indiricek fakat.

ben sadece o üyenin indirmesini ver her download dediğinde farklı bir dosya ismi ile indirmesini
istiyorum.

yani ordan çektği download url ile indirme işlemi gerçekleştirememsini
sadece button a tıklayınca indirmesini.

hosttaki zip dosyası

dosya/grafik.zip olsa bile
üye indirirken bunu o şekilde o dosyanın orda olduğunu bilmeden
idm vb programlar kullansan bile tespit edemeyeceği şekilde
indirmesini nasıl sağlayabilirim.

sadece fikirlerinize ihtiyacım var.

Cevap yaz
Cevaplar (5)
aydinkeskin
1373 gün önce

yaptım fakat download ediyor doğru dosya boyutu ile

ama indirilen dosyayı açmaya çalışınca bozuk olduğu için açmıyor

file_extens sutununa : rar
file_nm sutununa : gerçek dosya adı - 1
file_wa sutununa : 1.rar
file_md5 : 12312ı312jkj31k23j12j3k12

şeklinde sql e kaydediyorum
ana dosya da 1.rar
herşey normal indiriyor iyi hoş fakat neden bozuk
the arshive is either in unknown hatası veriyor açmaya çalışınca.

qplot
1392 gün önce

eskiden html sayfaları header ıle xls yanı excel olarak ındırme yaptrırdık

arkadasın anlattıgı gıbı mantık aslında şu

kaynak dosyayı cagıracaksın md5 yapmana da gerek yok
ındırtırken yenıden adlandırıp ındırteceksın md5 ıle orada adlandırırsın

aydinkeskin
1393 gün önce

db ye md5 kaydediyorsan dizindede md5 li isim ile mi utuyorsun dosyayı

bunu bi denicem teşekkür ederim.

batuhan1915
1393 gün önce

<?php 



include_once("config");

session_start();
	$url = htmlspecialchars(trim($_GET["url"]));
	$name = htmlspecialchars($_GET["435ed7e9f07f740abf511a62c00eef6e"]);
	if($_SESSION["ip"] != $_SERVER["REMOTE_ADDR"] && $_SESSION["user_agent"] != $_SERVER["HTTP_USER_AGENT"]){
	   header('location: ../bunlar/benimYonlendrmelerim');
	 }
	 if(trim($url) == ""){
	 	header('location: ../');
	 }else{

	 	$kontrol = $db->prepare("SELECT * FROM file WHERE file_uploader_id=:uplod AND file_md5=:furl");
		$kontrol->execute([":uplod" => $_SESSION["id"] , ":furl" => $url]);
	 	if($kontrol->rowCount()){
	 	  foreach($kontrol as $filem);
	 	  $fileExtens = $filem['file_extens'];
	 	  $fileNm = explode('.',$filem['file_nm'])[0];
	 	  $file = $filem['file_wa'];
	 	  $name = $fileNm.'.'.$filem['file_extens'];
	 	  if(file_exists("../dosyaninGercekYolu/".$file)){
				$size   = filesize("../dosyaninGercekYolu/".$file);
			    header('Content-Type: 		image/tiff,image/png,image/jpeg,application/zip,application/x-7z-compressed,application/vnd.rar,application/x-rar-compressed, application/octet-stream');
			    header('Content-Length: '.$size);
			    header('Content-Disposition: attachment; filename='.$name);
			    header('Content-Transfer-Encoding: binary');
			    header('Cache-Control: must-revalidate,post-chechk= 0,pre-check=0');
			    header('Pragma: public');
			    readfile("../dosyaninGercekYolu/".$file);
			    ob_clean();
			    flush();
			    exit();
			}else{
				echo "Böyle Bir Dosya Bulunmuyor";
			}
	 	  
		}else{
	 		//header('location: ../');
		}
	 }
 ?>


ben böyle indirtme yapıyorum kendi sitemde başka bir kullanıcı dosyayi indiremiyor malum dosyayi md5 ile formatladigm ve databasede md5 olarak tutarak kontrol ediyorum ve o dosyayi getirtiyorum ve indiriliyor

database
1393 gün önce

Kullandığın dili söylesen daha iyi olurdu.

Ben php olarak düşünüp cevap vereceğim, ilk önce dosyalarını ana dizinin arkasında bir yerde saklamalısın yoksa bütün kullanıcılar tarafından erişilebilir durumda olurlar ve çağırırkende readfile() ile çağırıp dosyanın türünü header olarak atıp attachement yapman gerekiyor otomatik olarak kendisi inecektir zaten.