ubuntuusers.de

PHP datai zum download anbieten die im /mnt/.../.../test/ liegt

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

KingArtus

Anmeldungsdatum:
6. August 2007

Beiträge: 582

Hallo,

ich habe ein paar Dokumente auf einem Fileserver liegen, habe diesen Gemountet und www-data (apache2) leserechte gegeben. leider schaffe ich es nicht, diese Dokumente so an zu bieten, das sie der Webseiten Besucher downloaden kann.

über einfache <a href"/mnt/.../.../test/test.pdf">test</a> klappt das mal Garnicht...

ich habe echt gesucht im Internet, das Problem ist das ich nicht genau weiß wie ich das Problem beschreiben soll, folglich sind meine Suchergebnisse eher mäßig bis erfolglos.

wenn mir einer Helfen könnte wäre ich sehr sehr dankbar.

King

Midhas

Avatar von Midhas

Anmeldungsdatum:
16. Dezember 2005

Beiträge: Zähle...

Vorausgesetzt WWW-Data darf aus seinem Root-Directory raus und PHP darf ebenfalls aus seinem open_base_dir-Verzeichnis kann kannst Du folgendes Manual gut dazu verwenden:

php function header

KingArtus

(Themenstarter)

Anmeldungsdatum:
6. August 2007

Beiträge: 582

Vorausgesetzt WWW-Data darf aus seinem Root-Directory raus und PHP darf ebenfalls aus seinem open_base_dir-Verzeichnis kann kannst Du folgendes Manual gut dazu verwenden:

was genau meinst du damit? muss ich noch was Konfigurieren? und wenn ja, was?

ich habe mal mit libimagemagik gearbeitet, da muss ich ich nur den Pfad angeben.. aber jetzt scheint es doch deutlich komplizierter zu sein!

Midhas

Avatar von Midhas

Anmeldungsdatum:
16. Dezember 2005

Beiträge: 238

Naja sagen wir so. Wenn Du Deinen Apache-Host so eingestellt hast, dass er die Root-Directory unter /src/www/meine_website hat, dann kommt er per Link nicht einfach so an /home/du/datei.txt dran. Rufst Du aber in /srv/www/meine_website das Script datei.php auf, also /srv/www/meine_website/datei.php, dann ist es ein PHP-Script und dann greift da die open_base_dir von PHP. Und dann darf ggfs. PHP nicht an die Datei dran. Dazu kommt nocht, dass PHP-Dateien ausgeführt werden. Hast Du eine .php-Datei die heruntergeladen werden soll, dann muß Du eine andere Datei zur Hilfe nehmen und den Inhalt als Attachment zurückliefern lassen. Siehe Manual von vorhin.

KingArtus

(Themenstarter)

Anmeldungsdatum:
6. August 2007

Beiträge: 582

hat geklappt, sieht dann so aus:

<?PHP
 // Define the path to file
 $file = '/mnt/o/whitepaper.doc';
 
 if(!file)
 {
     // File doesn't exist, output error
     die('file not found');
 }
 else
 {
     // Set headers
     header("Cache-Control: public");
     header("Content-Description: File Transfer");
     header("Content-Disposition: attachment; filename=$file");
     header("Content-Type: application/doc");
     header("Content-Transfer-Encoding: binary");
    
     // Read the file from disk
     readfile($file);
 }
 ?>
Antworten |