+ Antworten
Ergebnis 1 bis 8 von 8
  1. #1
    Registriert seit
    Nov 2010
    Ort
    Wetterau
    Beiträge
    948

    Question readfile mit 1,5MB (in Webhook) = Output-Buffer exceeds 1024kb. Operation halted.

    Hallo.

    Im Rahmen einer Modulentwicklung möchte ich den Inhalt einer Textdatei an den Browser zurückliefern, die ggf. größer als 1MB ist.
    Erwartungsgemäß erhalte ich bei größeren Dateien folgende Anzeige: "Output-Buffer exceeds 1024kb. Operation halted.".

    Folgendes habe ich bereits erfolglos versucht um die Größenbeschränkung aufzuheben, bzw. hochzusetzen:


    - In php.ini den Wert "output_buffer=Off" gesetzt (inkl. Dienst Neustart)

    - Die Ausgabe innerhalb von ob_start und ob_end_flush gestellt.

    PHP-Code:
    ob_start(null4096);
    readfile($erg);
    ob_end_flush(); 
    - Anstelle readfile auch echo file_get_contents($erg); versucht.

    Da es in einem Modul laufen soll (genauer gesagt als Teil eines Webhook) wäre ein Anpassen der php.ini nicht der wünschenswerteste Weg.

    Habt ihr noch einen Tipp für mich.

    Danke & Gruß
    Thorsten
    IPS 5 auf Raspian, KNX, DALI, Homematic, EKM, RGB868 Stripe

  2. #2
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    19,259

    Lass bitte das ob_* weg. Das hebelt readfile komplett aus. Mit ob_* versuchst du die ganze Datei in den RAM zu laden, was IPS nicht zulässt.

    paresy

  3. #3
    Registriert seit
    Nov 2010
    Ort
    Wetterau
    Beiträge
    948

    Zuerst hatte ich ja auch nur "readfile", bzw. echo "file_get_contents" und als da in jeder Kombination immer die Exception > 1024KB kam hatte ich probiert das mit ob_* zu lösen.

    Wie muss ich denn vorgehen, wenn ich eine Datei (> 1MB) in einem Modul via Webhook an den Browser ausliefern möchte?

    Danke & Gruß
    Thorsten
    IPS 5 auf Raspian, KNX, DALI, Homematic, EKM, RGB868 Stripe

  4. #4
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    19,259

    Ich habe es mir gerade noch einmal angesehen und leider ist die Antwort zur Zeit, dass es nicht geht. Du kannst nur einen etwas ekeligen Workaround nutzen, indem du die Datei in den /webfront/user/ Ordner kopierst und dahin umleitest. Der interne Webserver kann nämlich mit großen Dateien umgehen.

    paresy

  5. #5
    Registriert seit
    Nov 2010
    Ort
    Wetterau
    Beiträge
    948

    Hallo paresy.

    Ich habe das jetzt so umgesetzt, dass die md-Datei direkt unterhalb des /webfront/user Verzeichnisses geschrieben wird.
    Rufe ich die Datei per Browser auf, dann scheinen Zeilenumbrüche ignoriert zu werden.

    Öffne ich die Datei via Dateisystem im Browser stimmen die Zeilenumbrüche.
    Ist das ein "Feature", dass irgendwelche Zeichen entfernt werden bei Auslieferung über den IPS Webserver?

    Gruß
    Thorsten
    IPS 5 auf Raspian, KNX, DALI, Homematic, EKM, RGB868 Stripe

  6. #6
    Registriert seit
    Nov 2010
    Ort
    Wetterau
    Beiträge
    948

    Hallo paresy.

    Ich muss hier leider nochmal nachfragen, da ich nicht wirklich weiter komme.

    Ich erzeuge per Skript im webfront/user Verzeichnis eine Markdown/MD-Datei (/webfront/user/.../index.md). Je nachdem ob ich diese per URL oder als lokale Datei im Browser öffne wird sie unterschiedlich angezeigt.

    Öffnen per URL im Browser: http://localhost:3777/user/SymDoc/35558/index.md
    Die Datei wird unformatiert angezeigt (also keine "hübsche" MD-Darstellung) und in den Eigenschaften der Seite wird "text/html" als Typ angezeigt. Damit interpretieren Browser Plugins es offensichtlich nicht als markdown Syntax.

    Öffnen als Datei im Browser //Library/Application Support/Symcon/webfront/user/SymDoc/35558/index.md
    Die Datei wird von der Browser Plugins für Markdown interpretiert und "hübsch" angezeigt.
    Als Typ in den Eigenschaften kommt "text/plain".

    Frage: Muss/Kann ich in den MD-Files noch einen Content Type für Markdown angeben oder wie kann ich den "Typ" beeinflussen, wenn die MD-Datei vom IPS Webserver ausgeliefert wird?

    Gruß
    Thorsten
    IPS 5 auf Raspian, KNX, DALI, Homematic, EKM, RGB868 Stripe

  7. #7
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    19,259

    Im IP-Symcon Ordner liegt eine mime.types Datei. Ggf. muss ich diese aktualisieren, damit Markdown als MIME Typ erkannt wird. Für einen ersten Test kannst du die Datei aber per händisch mal bearbeiten.

    paresy

  8. #8
    Registriert seit
    Nov 2010
    Ort
    Wetterau
    Beiträge
    948

    Danke für den Tipp.

    Ich habe die Datei ergänzt und den Dienst neu gestartet. Jedoch ändert das nichts am Ergebnis. Die MD-Datei (auch testweise die README.md von SymconMisc auf Github) wird als "text/html" erkannt und nicht ordentlich angezeigt.

    Ich glaube ich habe da noch einen Denkfehler und probiere mein Glück morgen wieder .

    Code:
    text/markdown	md
    #text/x-markdown            md
    Gruß
    Thorsten
    IPS 5 auf Raspian, KNX, DALI, Homematic, EKM, RGB868 Stripe

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 27.09.18, 22:58
  2. WebOAuth2 mit Webhook
    Von ubittner im Forum PHP-Module
    Antworten: 16
    Letzter Beitrag: 24.06.18, 22:07
  3. Output-Buffer exceeds 1024kb ......
    Von wgreipl im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 11
    Letzter Beitrag: 27.07.17, 23:59
  4. Geofency mit Webhook
    Von hmpf99 im Forum Mobile (iOS/Android)
    Antworten: 196
    Letzter Beitrag: 10.03.16, 10:28