Autor Zpráva
drvaca
Profil
Dobrý večer,
mám menší problém s jedním souborem.
Soubor se jmenuje download.php , a toto je jeho kód:
<?
$soubor = $_GET["soubor"];

header("Content-Description: File Transfer"); 
header("Content-Type: application/force-download"); 
header("Content-Disposition: attachment; filename=\"$soubor\""); 

readfile ($soubor); 
?>


Takže asi jasné, že download.php?soubor=1.mp3 nabídne ke stažení soubor 1.mp3

Problém však nastane když chci dát ke stažení něco z nějaké složky, například download.php?soubor=mp3/2010/1.mp3 mi nabídne ke stažení neexistující soubor mp3_2010_1.mp3 .
Dokáže mi někdo poradit co s tím? Byl bych vděčný přímo za kód který by fungoval tak jak má.
Děkuji
saphire
Profil
drvaca:
<?
$soubor = $_GET["soubor"];

if(file_exist($soubor)){
  header("Content-Description: File Transfer"); 
  header("Content-Type: application/force-download"); 
  header("Content-Disposition: attachment; filename=\"$soubor\""); 

  readfile ($soubor);
}else{
  echo "Pozadovany soubor neexistuje";
}
?>

kde f-ce file_exist($soubor) ověřuje existenci souboru viz php.net
Alphard
Profil
Do URL byste měl dodávat řetězec zakódovaný přes urlencode().
drvaca
Profil
Děkuji vám oběma :)
Toto téma je uzamčeno. Odpověď nelze zaslat.