Einzelnen Beitrag anzeigen
  #32 (permalink)  
Alt 21.04.2009, 21:45
Benutzerbild von AndreasB
AndreasB AndreasB ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 29.11.2005
Beiträge: 1.391
AndreasB wird schon bald berühmt werden
Standard

@markus
Erstmal herzlichen Dank für das Schreiben des Beispielcodes.

Ich habe es ausprobiert, wende es aber offensichtlich falsch an.

Es gibt das Dokument http://borumat.de/+temp/html/test/index.pdf

Dann habe ich eine Testdatei angelegt, die den Skriptcode von Dir enthält.
http://borumat.de/+temp/html/pdf-url-http-header-skript
HTML-Code:
<?php 

    // lokaler Dateisystempfad zur PDF-Datei
    $file = '/+temp/html/test/index.pdf';
    // Dateiname, mit der die Ressource ausgeliefert werden soll
    $filename = 'temp-html-test.pdf';

    // Hilfsfunktion zum Kodieren des filename-Attributwerts (siehe RFC 2822)
    function rfc2822_quoteString($string)
    {
        return preg_replace('/[^\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]/', '\\\\$0', $string);
    }

    // Inhaltstypen bestimmen
    header('Content-Type: application/pdf');
    // Inhalts-Disposition (inline/attachment)
    header('Content-Disposition: inline;filename="'. rfc2822_quoteString($filename).'"');
    // Dateiinhalt wird gelesen und ausgegeben
    readfile($file);
    // Skript wird explizit beendet, damit keine zusätzlichen Ausgaben die Daten korrumpieren
    exit;  ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="de" xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p>Lorem ipsum <a href="/+temp/html/test/">/+temp/html/test/</a> sit amet.</p>
</body>
</html>
Das Aufrufen dieser Seite misslingt. Beim Aufruf wird Adobe-Reader geöffnet und es erscheint eine Fehlermeldung:
"... konnte nicht geöffnet werden, da der Dateityp nicht unterstützt wird oder die Datei beschädigt ist".

Sorry, ich stehe offenbar auf der Leitung. Mir ist immer noch nicht klar, wie das ganze Verfahren ablaufen soll.
__________________

Mit Zitat antworten
Sponsored Links