Ergebnis 1 bis 17 von 17

Thema: Grosse Dateien im Kundenbereich bereitstellen

  1. #1
    Contao-Nutzer Avatar von plusx
    Registriert seit
    19.01.2010.
    Ort
    Kassel
    Beiträge
    141

    Standard Grosse Dateien im Kundenbereich bereitstellen

    Hallo!

    Ich habe ein Problem im Kundenbereich. Dort sind grosse Dateien für Kunden zum Download per Elementtyp Downloads bereitgestellt, z.B. ein 350 MB grosses ZIP-File. Nach dem Einloggen und Klick auf das Element wird aber nicht der Browser-Dialog zum Speichern, sondern eine weisse Seite im Browser angezeigt. Kleinere Files bis 100MB lassen sich dagegen problemlos downloaden. Hat jemand eine ähnliche Beobachtung gemacht und eine Lösung gefunden? Oder hat jemand eine Idee, woran es liegen könnte.

    Ich freue mich über Hilfe!

    PS: Der direkte Download über Direkteingabe einer URL in einem nicht geschützten Bereich funktioniert übrigens.
    Beste Grüße
    Sebastian

  2. #2
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    Schalte mal die Fehlermeldungen in den Einstellungen ein. Ich tippe darauf, das eine Fehlermeldung kommt, bez. Memory oder ExecutionTime.
    Die Datei wird geoeffnet um den Typ zu analysieren.
    Wie gross sind deine PHP Einstellungen fuer execution_time und memory_limit ?
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  3. #3
    Contao-Nutzer Avatar von plusx
    Registriert seit
    19.01.2010.
    Ort
    Kassel
    Beiträge
    141

    Standard

    memory_limit: 128M
    max_execution_time: 60
    Fehlermeldung wird nicht angezeigt - nur eine weisse Seite.
    Beste Grüße
    Sebastian

  4. #4
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    Das erklaert auch, warum 100MB Dateien angezeigt werden koennen.

    Intern wird die Datei beim ANzeigen des DownloadArchivs einmal geoffnet.
    Evt. reicht es aus, den memory_limit testweise mal auf 400MB zu erhoehen.
    Hiervon rate ich aber dringensd ab ! Da man damit seinen Server "sterben" lassen kann.....

    Du koenntest dann nur einen Umweg gehen, indem du die DownloadLinks selbst erzeugst und als HTML Code eingibst.
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  5. #5
    Contao-Fan Avatar von acenes
    Registriert seit
    13.06.2009.
    Beiträge
    407

    Standard

    Es gibt Meldungen wonach die von TL beim Download verwendete PHP Funktion fpassthrou() übermässig Speicher beansprucht (sprich die ganze Datei einliest).

    Versuch mal folgendes.
    In der Datei system/libraries/Controller.php den Block bei Zeile 1968:

    PHP-Code:
             $resFile fopen(TL_ROOT '/' $strFile'rb');
            
    fpassthru($resFile);
            
    fclose($resFile); 
    Wie folgt abändern:

    PHP-Code:
             $resFile fopen(TL_ROOT '/' $strFile'rb');
            while(!
    feof($resFile)) print fread($resFile4096);
            
    fclose($resFile); 
    Falls das funktioniert könnte man es as Change Request einbringen.

  6. #6
    Contao-Nutzer Avatar von plusx
    Registriert seit
    19.01.2010.
    Ort
    Kassel
    Beiträge
    141

    Standard

    Dann sind die Downloads aber nicht mehr geschützt, oder sehe ich das falsch?
    Beste Grüße
    Sebastian

  7. #7
    Contao-Nutzer Avatar von plusx
    Registriert seit
    19.01.2010.
    Ort
    Kassel
    Beiträge
    141

    Standard

    Zitat Zitat von acenes Beitrag anzeigen
    Es gibt Meldungen wonach die von TL beim Download verwendete PHP Funktion fpassthrou() übermässig Speicher beansprucht (sprich die ganze Datei einliest).

    Versuch mal folgendes.
    In der Datei system/libraries/Controller.php den Block bei Zeile 1968:

    PHP-Code:
             $resFile fopen(TL_ROOT '/' $strFile'rb');
            
    fpassthru($resFile);
            
    fclose($resFile); 
    Wie folgt abändern:

    PHP-Code:
             $resFile fopen(TL_ROOT '/' $strFile'rb');
            while(!
    feof($resFile)) print fread($resFile4096);
            
    fclose($resFile); 
    Falls das funktioniert könnte man es as Change Request einbringen.
    @acenes: Das funktioniert! Großartig! Tausend Dank! Den Request überlasse ich dir, da du ja auch die Lösung dafür hast!
    Beste Grüße
    Sebastian

  8. #8
    Contao-Nutzer Avatar von plusx
    Registriert seit
    19.01.2010.
    Ort
    Kassel
    Beiträge
    141

    Standard

    @acenes: Doch zu früh gefreut. Jetzt kann ich zwar downloaden, aber während des Downloads ist nichts anderes auf der Seite mehr klickbar. Wenn dann die Seite doch auf den Klick reagiert, bricht der Download ab.
    Beste Grüße
    Sebastian

  9. #9
    Contao-Fan Avatar von acenes
    Registriert seit
    13.06.2009.
    Beiträge
    407

    Standard

    Ok, noch ein Hack der dieses Problem eventuell löst:

    Vor Zeile 1959:

    PHP-Code:
            // Open the "save as …" dialogue
            
    header('Content-Type: ' $objFile->mime);
            
    header('Content-Transfer-Encoding: binary');
            
    header('Content-Disposition: attachment; filename="' $objFile->basename '"');
            
    header('Content-Length: ' $objFile->filesize);
            
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            
    header('Pragma: public');
            
    header('Expires: 0'); 
    session_write_close() einfügen:

    PHP-Code:
            session_write_close();

            
    // Open the "save as …" dialogue
            
    header('Content-Type: ' $objFile->mime);
            
    header('Content-Transfer-Encoding: binary');
            
    header('Content-Disposition: attachment; filename="' $objFile->basename '"');
            
    header('Content-Length: ' $objFile->filesize);
            
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            
    header('Pragma: public');
            
    header('Expires: 0'); 

  10. #10
    Contao-Nutzer Avatar von plusx
    Registriert seit
    19.01.2010.
    Ort
    Kassel
    Beiträge
    141

    Standard

    Zitat Zitat von acenes Beitrag anzeigen
    Ok, noch ein Hack der dieses Problem eventuell löst:

    Vor Zeile 1959:

    PHP-Code:
            // Open the "save as …" dialogue
            
    header('Content-Type: ' $objFile->mime);
            
    header('Content-Transfer-Encoding: binary');
            
    header('Content-Disposition: attachment; filename="' $objFile->basename '"');
            
    header('Content-Length: ' $objFile->filesize);
            
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            
    header('Pragma: public');
            
    header('Expires: 0'); 
    session_write_close() einfügen:

    PHP-Code:
            session_write_close();

            
    // Open the "save as …" dialogue
            
    header('Content-Type: ' $objFile->mime);
            
    header('Content-Transfer-Encoding: binary');
            
    header('Content-Disposition: attachment; filename="' $objFile->basename '"');
            
    header('Content-Length: ' $objFile->filesize);
            
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            
    header('Pragma: public');
            
    header('Expires: 0'); 
    Jetzt funktinoiert das Klicken zwar, aber der Download bricht immer nach ca. 6MB ab.
    Beste Grüße
    Sebastian

  11. #11
    Contao-Fan Avatar von acenes
    Registriert seit
    13.06.2009.
    Beiträge
    407

    Standard

    Seltsam. Hier aber nochmal eine Variante mit zusätzlichen Aufrufen welche helfen könnten:

    Original-Zeilen 1959 ... 1970 (// Open .... fclose) wie folgt ersetzen:

    PHP-Code:
            session_write_close();
            
    ob_end_clean();

            
    // Open the "save as …" dialogue
            
    header('Content-Type: ' $objFile->mime);
            
    header('Content-Transfer-Encoding: binary');
            
    header('Content-Disposition: attachment; filename="' $objFile->basename '"');
            
    header('Content-Length: ' $objFile->filesize);
            
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            
    header('Pragma: public');
            
    header('Expires: 0');

            
    $resFile fopen(TL_ROOT '/' $strFile'rb');
            while( !
    feof($resFile) ) {
                print(
    fread($resFile1024*8));
                
    flush();
            }
            
    fclose($resFile); 

  12. #12
    Contao-Nutzer Avatar von plusx
    Registriert seit
    19.01.2010.
    Ort
    Kassel
    Beiträge
    141

    Standard

    Hallo. Sorry für die Mühe. Ich vermute ein anderes Problem als TL. Denn TL läuft auf XAMPP unter Windows nt. Grosse Dateien auf einer anderen Installation funktionieren nämlich ohne Probleme. Ich forsche mal weiter ...
    Beste Grüße
    Sebastian

  13. #13
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Ort
    Berlin
    Beiträge
    47

    Standard

    Zitat Zitat von plusx Beitrag anzeigen
    Hallo. Sorry für die Mühe. Ich vermute ein anderes Problem als TL. Denn TL läuft auf XAMPP unter Windows nt. Grosse Dateien auf einer anderen Installation funktionieren nämlich ohne Probleme. Ich forsche mal weiter ...
    Hallo Sebastian,
    hatte das gleiche Problem mit Dateigrößen um die 200MB. Lag am memory_limit. Habe es auf 256M gesetzt und kann nun die Dateien downloaden.

    Beachte aber den Hinweis von lindesbs falls das mal "draußen" laufen soll. Bei mir läuft XAMPP unter Linux im LAN und ist daher nicht ganz so kritisch. Vielleicht gibt es ja doch noch eine andere Lösung.

    Grüße
    Thomas

  14. #14
    Contao-Nutzer Avatar von plusx
    Registriert seit
    19.01.2010.
    Ort
    Kassel
    Beiträge
    141

    Standard

    Zitat Zitat von paulicke Beitrag anzeigen
    Hallo Sebastian,
    hatte das gleiche Problem mit Dateigrößen um die 200MB. Lag am memory_limit. Habe es auf 256M gesetzt und kann nun die Dateien downloaden.

    Beachte aber den Hinweis von lindesbs falls das mal "draußen" laufen soll. Bei mir läuft XAMPP unter Linux im LAN und ist daher nicht ganz so kritisch. Vielleicht gibt es ja doch noch eine andere Lösung.

    Grüße
    Thomas
    Ja, es kann an XAMPP liegen. Ich habe eine Installation bei einem Provider unter Linux laufen, die nur 32M memory_limit hat und es funktioniert einwandfrei. Also ganz schlau werde ich daraus noch nicht ...
    Beste Grüße
    Sebastian

  15. #15
    Contao-Nutzer Avatar von plusx
    Registriert seit
    19.01.2010.
    Ort
    Kassel
    Beiträge
    141

    Standard

    Also ich bin zumindest jetzt einen Schritt weiter. XAMPP, PHP und Windows Server 2003 verursachen das Problem. Das memory_limit zu erhöhen, hilft leider nicht. Hat jemand noch eine schlaue Idee, ausser zu einem ordentlichen Webhoster zu wecheln? ;-)
    Beste Grüße
    Sebastian

  16. #16
    Contao-Nutzer Avatar von darth_saschi
    Registriert seit
    05.11.2009.
    Beiträge
    220

    Standard Workaround für das Problem

    Hallo.

    Ich habe den Thread verfolgt, weil ich dasselbe Problem hatte. Ich habe einen Workaround dafür gefunden. Vielleicht interessiert Dich das.

    http://www.contao-community.de/showt...ll=1#post72294

    Der Sascha

  17. #17
    Contao-Nutzer Avatar von plusx
    Registriert seit
    19.01.2010.
    Ort
    Kassel
    Beiträge
    141

    Standard

    Ich habe das Problem nur in Verbindung von XAMPP auf einem Windows-Rechner und Typolight festgestellt. Auf anderen Server funktioniert der Download grosser Dateien (gestestet bis 500MB) problemlos.
    Beste Grüße
    Sebastian

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Hat jemand Erfahrung mit BIK Dateien bwz. Bink Video-Dateien?
    Von latscheli im Forum Allgemeine Inhaltselemente
    Antworten: 2
    Letzter Beitrag: 11.02.2011, 11:23
  2. Antworten: 5
    Letzter Beitrag: 09.02.2011, 15:51
  3. Nur bestimmte Elementtypen für Redakteur bereitstellen ?
    Von xkoy im Forum Allgemeine Inhaltselemente
    Antworten: 2
    Letzter Beitrag: 06.11.2010, 01:59
  4. Antworten: 8
    Letzter Beitrag: 06.02.2010, 10:26
  5. Wichtig: Vorm Bereitstellen von Templates lesen
    Von Nina im Forum Modifizierte Templates
    Antworten: 0
    Letzter Beitrag: 18.06.2009, 13:13

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •