phpbar.de logo

Mailinglisten-Archive

[php] richten Datei-Namen anzeigen

[php] richten Datei-Namen anzeigen

Roland Schmid php.liste at net-service-24.de
Mon Dez 22 11:22:22 CET 2003


Hallo Liste,

ich verwende das Download-Script von www.php-center.de etwas
abgeändert. Eine PDF-Datei soll sich direkt im Reader öffnen, klappt
auch. Aber sobald ich auf "Speichern" klicke wird als Dateiname der
Name des PHP-Files vorgegeben und nicht der eigentliche PDF-Dateiname.
Wie kriege ich es hin, das der original Dateiname vorgegeben wird?
Das Downloadscript sieht so aus:
Der Aufruf sieht so aus:
http://www.meinesite.de/lesen.php?download=bev1

<?php
# $download sei der Bezeichner für die zu ladende Datei

# Dieses Verzeichnis liegt außerhalb der Document_Root und
# ist nicht per URL zuzugreifen.
$basedir = "/var/www/download/chor";

# Übersetzung von Download-Bezeichner in Dateinamen.
$filelist = array(
  "bev1" => "pdf/bev1.pdf",
  "bev2" => "pdf/bev2.pdf"
  );

# Einbruchsversuch abfangen.
if ($filelist[$download] == "")
  die("Datei $download existiert nicht.");

# Vertrauenswürdigen Dateinamen basteln.
$filename = sprintf("%s/%s", $basedir, $filelist[$download]);

# Passenden Datentyp erzeugen.
header("Content-Type: application/pdf");

# Passenden Dateinamen im Download-Requester vorgeben,
# z.B. den Original-Dateinamen
$save_as_name = basename($filelist[$download]);
header("Content-Disposition: download; filename=\"".$save_as_name."\"");

# Datei ausgeben.
readfile($filename);
?>




Gruss Roland

php::bar PHP Wiki   -   Listenarchive