André Laugks: + PHP, Dateien zum Downlaod anbieten, falsche Header-Infos

Hallo!

Auf einem pysikalischen Server liegen mehrere Webpräsensen. Mit diesem pysikalischen Server wird nun von Provider A nach Provider B umgezogen.
Von dem Provider B wurden virtuelle Server zur Verfügung gestellt, damit der Umzug geschmeidig von statten geht. Der pysikalische Server geht ja für ein paar Stunden vom Netz.

So, auf dem pysikalische Server läuft ein Downloadscript(download.php), was auch seinen Dienst tun. Der "Speichern unter" Dialog erscheint unter allen Browsern, außer unter Opera.

--------------------------------------------------------------
$basedir = $_SERVER["DOCUMENT_ROOT"] .  "/pressemeldungen/";
$filename = sprintf("%s/%s", $basedir, $datei);
header("Content-Type: application/octet-stream");
$save_as_name = basename($datei);
header("Content-Disposition: attachment; filename="".$save_as_name.""");
readfile($filename);
--------------------------------------------------------------

Auf dem virtuellen Server wird mir aber nur unter dem IE der "Speichern unter" Dialog angezeigt. Der übergebenen Dateiname wird nicht angezeigt, aber (download.htm), aber die richtige Datei wird gedownloadet, also kommt die Variable $datei an.

Im Netscape 4/6/7 wird die Datei (PDF) gar nicht zum Downlaod angeboten, sondern angezeigt.

Ich kann jetzt nicht ganz folgen, ist das eine Sache von PHP oder dem Apache? Es läuft jeweils die selbe PHP-Version(4.1.2).

MfG, André Laugks

  1. Hi,

    header("Content-Disposition: attachment; filename="".$save_as_name.""");

    Auf dem virtuellen Server wird mir aber nur unter dem IE der "Speichern unter" Dialog angezeigt. Der übergebenen Dateiname wird nicht angezeigt, aber (download.htm),

    möglicherweise hat der alte Server den defekten Header repariert, indem er die unerlaubten Anführungszeichen entfernt hat... ;-)

    Ich kann jetzt nicht ganz folgen, ist das eine Sache von PHP oder dem Apache? Es läuft jeweils die selbe PHP-Version(4.1.2).

    Zunächst einmal solltest Du untersuchen, welche Header _wirklich_ verschickt werden (und, falls das noch geht: wurden). Mache einen HEAD-Request auf die Ressource(n); oder, falls Du das nicht kannst, sage uns die URL(s).

    Cheatah

    --
    X-Will-Answer-Email: No
  2. Hi André,

    Ich kann jetzt nicht ganz folgen, ist das eine Sache von PHP oder dem Apache? Es läuft jeweils die selbe PHP-Version(4.1.2).

    relevant ist nur, was an den Client gesendet wird - nicht, wie es entstanden ist.

    Ein klarer Fall für
        http://www.schroepl.net/cgi-bin/http_trace.pl
    , würde ich mal sagen ... am besten 'alt' und 'neu' miteinander vergleichen, falls (noch) möglich.

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.