Lokale PDF via Webfront an Browser schicken

N’Abend zusammen

Was ich tun möchte:
Eine lokal auf dem RasPi gespeicherte PDF Datei via Webfront an den Browser schicken, so dass diese angezeigt oder alternativ abgespeichert werden kann.
Nur klappt das bisher nicht.
Erschwerend ist, dass das System keinen Internet Zugang hat. Deswegen kann die Datei nur lokal liegen und nicht zB. auf Dropbox o.ä. bereitgestellt werden.

Folgendes habe ich versucht

  1. Versuch verlinken der PDF
    -PDF im Verzeichnis „webfront/user/“ abgelegt
    -im Webfront als „Externe Seite“ auf das PDF verlinkt
    Resultat: PDF wird nicht an den Browser zurück geschickt (es passiert gar nix)

  2. Versuch PDF Ausgabe via Script
    -Script und PDF liegen beide im Verzeichnis „webfront/user/“
    -Script gibt als Output HTTP header und PDF zurück
    -Script ist als „Externe Seite“ im Webfront eingebunden

 <?php

 //Start writing your scripts between the brackets
 $file = './test.pdf';
 $filename = 'filename.pdf';

 header('Content-type: application/pdf');
 header('Content-Disposition: inline; filename="' . $filename . '"');
 header('Content-Transfer-Encoding: binary');
 header('Accept-Ranges: bytes');
 @readfile($file);

?>

Dieser Versuch scheitert daran, dass die Header durch das Webfront schon gesetzt sind und dementsprechend das File vom Browser nicht als PDF erkannt wird.

Hat mir jemand einen Tipp, wie ich das hinbekomme eine lokale PDF Datei (habe ich nur als PDF und nicht in einem anderen Format) aus IPS an den Browser zu schicken?

Beste Grüße
Dolocyl

P.S: IPS 4.0 RC3 auf RasPi

Kannst du nicht einfach direkt die PDF aufrufen?

paresy

Sicher ?
Die Fehlermeldung sagt das dein Script den Header schon in Zeile 1 sendet.
Könnte das hier ein Leerzeichen sein, oder Copy & Paste Fehler ?

Zwischenablage01.png
Michael

Ui! Gut erkannt. Das mit dem Leerzeichen klingt nach einem super Tipp. Ist mir voll durch die Lappen gegangen. Ist schon spät :slight_smile:

paresy

Genau… darum gehe ich nun auch :smiley:
Habe mir eben ein Speicherleck in meiner SW gefangen und um das zu suchen… nööö nicht mehr um diese Zeit :wink:

Nacht Jungs.
Und viel Erfolg mit dem PDF… falls es nicht geht… morgen nochmal ‚frisch‘ anfangen.

Michael

Vielen Dank für den Tipp mit dem Leerzeichen!
Ist ein Ansatz (falls das nicht ein Copy&Paste Fehler ins Forum :wink: war)
Werd mir das heute Abend anschauen und melde dann ob’s geklappt hat.

-dolocyl

Leerzeichen war auf Zeile 1 vorhanden - definitiv ein Fehler.
Nach der Korrektur - nix :frowning:
mit den PHP header() Anweisungen sehe ich im Browser nix vom PDF, scheint ignoriert oder gar nicht zum Browser geschickt zu werden…

Nehme ich die header() Anweisungen raus raus, sehe ich wenigstens den Inhalt des PDFs im Browser. Allerdings ist das noch nicht ganz das Resultat, dass ich erhofft hatte:


<?php
$file = 'test.pdf';
$filename = 'Custom file name for the.pdf'; /* Note: Always use .pdf at the end. */
//header('Content-type: application/pdf');
//header('Content-Disposition: inline; filename="' . $filename . '"');
//header('Content-Transfer-Encoding: binary');
//header('Content-Length: ' . filesize($file));
//header('Accept-Ranges: bytes');

@readfile($file);
?>

Ich weiss nicht mehr weiter… kann es wirklich so schwer sein eine Lokale PDF an den Browser zu schicken? :confused:
Hat jemand einen anderen Ansatz wie ich eine lokal gespeicherte PDF an den Browser schicken kann?

-dolocyl