[Kobv-opus-tester] Problem beim Download von groesseren Dateien aus OPUS4

Heidi Traeger htr at uni-weimar.de
Don Nov 17 17:52:06 MET 2011


Am 17.11.2011 17:07, schrieb Bettina Lapp:
> Hallo zusammen,
>
> OPUS 4.1.4 auf Ubuntu Lucid amd64, beim Download grösserer Dateien
> (unabhängig vom Dateityp) wird die Datei beschädigt. Dies geschieht bei
> pdfs, und auch z.B. beim Herunterladen von Quelldateien wie zip oder
> tar.gz Archiven in der Administration. Ich konnte nicht genau
> feststellen, welches die Dateigrösse ist ab der die Datei korrumpiert
> ausgeliefert wird, ungefähr ab 12MB.
>
> Meine Recherche ergab dass ähnliche Probleme öfters bei
> PHP-Downloadskripts auftreten, der Fehler entsteht meist wenn whitespace
> oder php notices u.ä. am Anfang oder Ende der Datei mit ausgegeben wird.
> In unserem Fall kann man mit einem Vergleich einer Original-pdf mit der
> beschädigten Version sehen dass am Ende des pdf ein String "Cannot send
> headers; headers already sent in
> /data/opus4/opus4/library/Controller/Helper/SendFile.php, line 146" steht.
>
> Das Phänomen liess sich beseitigen indem man in
> $OPUSHOME/opus4/library/Controller/Helper/SendFile.php nach dem Senden
> der Datei ein "exit;" einfügt, welches anscheinend erfolgreich
> verhindert dass irgendwelche weiteren Daten an die Datei angehängt werden.
>
> Zeile
> 146        $retval = fpassthru($fp);
> 147         if ($retval === false) {
> 148             throw new Exception('fpassthru failed.');
> 149         }
> 150         exit;
>
> Ich weiss nicht ob wir einen besonders langsamen Server, oder besonders
> grosse Dateien haben, so dass dieser Fehler noch nie bei jemand anders
> aufgetreten ist? Könnte natürlich auch eine ungünstige php.ini sein oder
> ähnliches... für Rückmeldungen wäre ich dankbar.
>
> herzliche Grüsse,
>
> Bettina Lapp
>
Hallo Frau Lapp,

vielen Dank. Als ich Ihre Mail gelesen habe, habe ich mich erinnert, 
dass ich letztens genau dieses Problem mit einer 28 MB Datei hatte. In 
der alten Opus3 Installation war die Datei lesbar, in meiner OPUS 4.1.4 
Installation (noch im Aufbau) beschädigt.
Ich bin Ihrem Tip gefolgt und habe in der SendFile.php "exit;" eingefügt 
und die Datei ist nach dem Upload nicht beschädigt. Super.

Beste Grüße aus Weimar
Heidi Traeger
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : htr.vcf
Dateityp    : text/x-vcard
Dateigröße  : 325 bytes
Beschreibung: nicht verfügbar
URL         : http://listserv.zib.de/pipermail/kobv-opus-tester/attachments/20111117/d549589c/htr.vcf