Başlıkta belirtildiği üzere, indirme işleminde ajax ile post yapıp indirme işlemi sağlarken url yolu gizlemek istiyorum .
Yardımcı olan arkadaşlara teşekkür ederiz.
Fikir vermeniz yeterlidir.
Php ajax ile rar dosyasını indir yapıyorum. Lakin url yolunu gizlemek istiyorum? Nasıl?
4
●284
- 28-04-2019, 03:15:58
/indir.php?tekKullanimKod=54jjdfh4jh5hjdfdf
DB'de downloads adında bir tablo açılabilir. (id, code, file_url, is_download).
- code ile hangi dosyayı çekeceğini kontrol edersiniz.
- indir.php dosyasında is_download kontrol eder ve tekrar indirilmemesini sağlayabilirsiniz (eğer indirirse 1 yaparsınız).
- file_url ile php kullanarak gerçek dosyayı çeker ve yazdırırsınız.
- 28-04-2019, 03:18:16@MOmerAlpi; db de url ler için tablo oluştur, aynı url ye kod tanımla daha sonra o kod ile sorgula bu şekilde mi? yanlış mı anladım ?
@MOmerAlpi; ajax kullanınca bu mantık yurumez sanırım . url ye atatıgımız kod ıle ajax ta post yapsak indir dosyasına orada kodu sorgulayıp karsılıgında kı url yı bulsak orda ne yapacağız sonuçta sayfayı yenılemedık. ordaki işlemde indir start ını nasıl vereceğiz. - 28-04-2019, 03:29:40Araştırmanız gereken kelime: "url file download php"Themerig adlı üyeden alıntı: mesajı görüntüle
Alttaki örneği test etmedim yapmak istediğiniz şey mümkün..
$file = "http://site.com/dosya.zip"; header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="dosya.zip"'); readfile ($file); exit();/ajax.php?type=indir&code=5dsfdfgdfg şeklinde dosyanın indirilmeye müsait olup olmadığı kontrol edilir (sadece db'de is_download edilmiş mi bakacak);
Ardından hazırsa window.location.href = '/indir.php?code=5453454' yaptırabilirsiniz. Sonuçta readfile komutu var. Normal bir zip indiriyormuş gibi direct download olacaktır.. - 28-04-2019, 03:31:05@MOmerAlpi; yazın bekliyorum çünkü bu şekilde ajax post ile çalışmıyor. bu yöntemleri denemiştim.
@MOmerAlpi; bu işlemleri deneyip bilgi vereceğim.
@MOmerAlpi;
Bu şekilde yapamadım.
if ($_POST['type'] == "cccccccccc") { $control = $db->prepare("SELECT * FROM xxxxxxxx WHERE item_id = ? AND buy_user_id = ? AND sell_user_id = ?"); $control->execute(array($_POST['item_id'],$_SESSION['id'],$_POST['sell_user_id'])); if ($control->rowCount()) { $control_check = $db->prepare("SELECT * FROM yyyyyyyyy WHERE id = ? AND user_id = ?"); $control_check->execute(array($_POST['item_id'],$_POST['sell_user_id'])); $row = $control_check->fetch(PDO::FETCH_ASSOC); if ($control_check->rowCount()) { $file = $row['product_file']; header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="dosya.zip"'); readfile ($file); exit(); } } }
function cccc(item_id,sell_user_id) { $.post("general.php", {type:"cccc", item_id: item_id, sell_user_id: sell_user_id},function (data) { setTimeout(function() { alert("inmesi lazım"); }, 2000); }); }