Dosya sizin yazılımınızın bulunduğu dizinde ise getcwd(), __DIR__, realpath gibi fonksiyonlar kullanarak dosyanın tam yolunu alın. Sizin url'den yakaladığınız dosyayı yazılım yakalayamıyor olabilir. Şöyle ki:

<?php file_exists(realpath(__DIR__.'/'.$url.'/assets' . $pdf));
ozgur_medya adlı üyeden alıntı: mesajı görüntüle
if(isset($sepetkontrolcek['sepet_id'])){
  $pdf = $ebookcek['ebook_file'];

$file_url = "$url/assets$pdf";

if(file_exists($file_url)){

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=$slug.pdf");
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
readfile($file_url);

}
}
Evet böyle bir kullanım izlediğimde herhangi bir down işlemi yapmıyor ancak $file_url'yi echo ettirdigimde gelen linki tarayicima girdigimde boyle bir dosya oldugunu goruyorum. Sizce sorun ne olabilir?