ugrás a tartalomhoz

File letöltés biztosítása PHP-ből?

maszili · 2005. Aug. 26. (P), 09.24
Udv mindenkinek!

Kezdő szinten foglalkozom PHP-vel és lenne egy kérdésem.

Létrehozok egy állományt szöveges tartalommal,
majd ezt valahogy automatikusan le kellene tölttetni
a böngészővel a felhasznéló gépére. Ha a letöltés
befejeződött akkor törölni az állományt.

Találtam egy ilyen kódrészletet:
<?php
$dir="/path/to/file/"; 
if (isset($_REQUEST["file"])) { 
     $file=$dir.$_REQUEST["file"]; 
     header("Content-type: application/force-download"); 
     header("Content-Transfer-Encoding: Binary"); 
     header("Content-length: ".filesize($file)); 
     header("Content-disposition: attachment; filename=\"".basename($file)."\""); 
     readfile("$file"); 
} else { 
     echo "No file selected"; 
} 
?>
Ezek alapján próbálom megcsinálni de ezt a hibauzenetet kapom:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/pbxreader/list.php:32) in /var/www/pbxreader/list.php on line 193

Ha valaki ismeri ezt az eljárást akkor útba igazítana hogy
hogyan is működik ez az egész? Mert nem értem...

Vagy ha van egyszerűbb módszer, annak is örülnék.
 
1

:-)

DevNULL · 2005. Aug. 26. (P), 09.59
A hibaüzenetet azért írja ki mert többször akarod módosítani a fejlécet.

Nem teljesen értem a letöltös kérdést, mert miért is lenne jó ha automatikusan le lehetne tölteni fájlt a felhasználó gépére?????????? Főleg a beleegyezése nélkül! (Egy szöveges állományban sokminden lehet :) )
2

<Nincs cím>

maszili · 2005. Aug. 26. (P), 15.31
Köszi a segítséget, de már megoldottam a problémát.
Igazából nem akartam többször módosítani.
Az volt a baj (meglátásom szerint), hogy akkor akartam
header információt küldeni a böngészőnek amikor már
tartalmat is küldtem előtte. Ezért kaptam a hibaüzenetet
és az a sor volt megjelölve ahol a tartalom kezdődott.
<html> , stb...

Egy adatbázisból való lekérdezés eredménye a szöveges
állomány tartalma. Akkor generálódik ha nem a képernyőre
hanem állományba kéri az illető mert további feldolgozásra
szánja az adatokat.