Seite 1 von 1

"Brauchbare" Attachment Header senden - Dateianhänge öffnen

Verfasst: 17.11.2014 22:10
von HabNurNeFrage
Hi,

was muss ich in ./download/file.php ändern, damit Attachments (nur PDF) direkt im Browser oder von GoogleDocs angezeigt werden können?

Ich steige durch das Header-Wirrwarr in der Funktion send_file_to_browser() nicht durch.
Egal was ich da ändere, es kommen immer nur Fehler oder der Download startet anstatt das Dokument zu öffnen.
Egal, ob ich sie mit cURL oder get_contents einlese und egal, ob ich sie speichere oder oder direkt im Speicher lese.
Nichts außer einem Download klappt.

Was ich bis jetzt probiert habe:

- Content-Disposition: inline (keinerlei Wirkung)
- zuvor genannten Header gar nicht senden (keinerlei Wirkung)
- application/octetstream zu application/pdf bzw. x-pdf geändert (keinerlei Wirkung)
- eine Kopie als <langer_phpbb_file_hash>.pdf speichern (erzeugt keine gültige PDF-Datei)

Bitte keine Diskussion um vermeintliche oder tatsächlich bestehende Risiken - die kenne ich: XSS, IE8 PreloadSniffing usw.
Ich möchte nach einer Lösung fahnden und keine Grundsatzdiskussion - vielen Dank :D

Bin für alle Vorschläge offen, die es hinterher ermöglichen, Attachments mit pdf.js anzeigen zu können.
Derzeit kann ich damit externe PDFs crossDomain anzeigen, eigene PDFs hochladen und anzeigen, bloß die kryptischen phpBB-Dinger nicht.
Irgendwie frustrierend... :lol:

LG

Re: "Brauchbare" Attachment Header senden - Dateianhänge öff

Verfasst: 18.11.2014 12:19
von HabNurNeFrage
Habe es hinbekommen Es war ein Pfad-Problem in meinem Code. Die richtige Datei mit Endung .pdf erzeugt nun doch ein gültiges Dokument.

Ich picke mir ganz am Anfang der Funktion PDFs raus und lasse PHP eine Kopie in einem Ordner erstellen.
Nun habe ich einmal die kryptisierte Form und einmal ein ganz normales PDF.

Das will ich nun aber so machen, dass nur bei durch Admins hochgeladene PDFs diese Kopie erstellt wird.

Re: "Brauchbare" Attachment Header senden - Dateianhänge öff

Verfasst: 26.11.2014 11:23
von gn#36
Bei den Attachments müsste es eine Spalte geben aus der du die User ID des Besitzers / Uploaders bekommst. Die kannst du dann durch $auth->acl_get_list($user_id, 'a_') jagen um zu schauen, ob der User ein Admin ist.

Achtung: https://tracker.phpbb.com/browse/PHPBB3-10252

Wenn du also Admin Berechtigungen per NIE wieder so entziehst, dass keine mehr übrig bleiben, dann klappt das so nicht.

Re: "Brauchbare" Attachment Header senden - Dateianhänge öff

Verfasst: 26.11.2014 14:17
von HabNurNeFrage
Hi und danke für die Info.

Ich schaue derzeit in includes/functions_upload.php, ob ich diese Funktionalität nicht gleich beim Upload einbinden kann.
Damit würde ich zwei Fliegen mit einer Klappe schlagen:
Einerseits könnte ich prima anhand des Rechtesystems regeln, wer solche Uploads machen darf und wer nicht. (Admins, Gruppen, Einzelne - dort alles kein Problem)
Und andererseits würden solche PDFs nicht bei jedem Abruf geklont, sondern stünden nach dem Upload sofort und dauerhaft anzeigbar zur Verfügung.

Leider sehe ich da noch nicht ganz durch und z.Zt. klappt es nur mit einer zusätzlichen, eigenen Funktion, die zeitgleich aufgerufen wird.
In dieser durchlaufen meine Uploads natürlich auch Prüfungen, jedoch nutze ich nicht die vorhanden Funktionen und blähe dadurch den Code unnötig auf.
Die Integration in die Funktion move_file() ist mir bis jetzt nicht gelungen. Dort wären es dann eventuell nur ein paar Zeilen Code...

LG