Contao-Camp 2024
Ergebnis 1 bis 2 von 2

Thema: valumsFileUploader: Dateien können nicht geschrieben werden

  1. #1
    Contao-Nutzer Avatar von Schmidty
    Registriert seit
    06.06.2011.
    Ort
    Pforzheim
    Beiträge
    203

    Frage valumsFileUploader: Dateien können nicht geschrieben werden

    Hallo,

    ich habe ein Problem mit dem valumsFileUploader: Eine funktionierende Contao-Installation 2.11.2 (Neuinstallation 04/2012), alles läuft problemlos (inkl. valumsFileUploader). Den valumsFileUploader habe ich schon einige Male über die Erweiterungsverwaltung (so wie alle anderen Erweiterungen auch) upgedatet (aber danach keine Uploads vorgenommen). Jetzt wollte ich wieder einige Dateien hochladen, aber der valumsFileUploader hat jetzt ein Schreibproblem, die Datein können nicht geschrieben werden (siehe beiliegenden Screenshot). Das Problem tritt immer auf, egal, ob ich als Redakteur mit eingeschränkten Rechten oder als Administrator angemeldet bin. Es macht auch keinen Unterschied ob ich mit dem IE9 oder dem Firefox 12 arbeite. Javascript ist ebenfalls aktiviert.

    Eine Deinstallation und Neuinstallation vom Ajax, Ajax-Uploader und valumsFileUploader brachte keine Änderung.

    Außer den regelmäßigen Updates der Extensions wurde am System nichts verändert. Das Standard-Contao-Uploadmodul funktioniert problemlos, genauso wie der Rest der Contao-Installation.

    Wer hat mir einen Tipp?

    Danke für die Hilfe.

    Viele Grüße

    Schmidty
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Schmidty (16.06.2012 um 11:20 Uhr)

  2. #2
    Contao-Nutzer Avatar von Schmidty
    Registriert seit
    06.06.2011.
    Ort
    Pforzheim
    Beiträge
    203

    Information Problem gelöst - aber mit offenen Fragen

    Hallo,

    ich konnte das Problem mit dem ValumsFileUploader mittlerweile eingrenzen: Das Problem tritt bei einem Freund auf, der Provider ist HostEurope, das gebuchte Paket ist ein WebPack L. Nach Kontaktaufnahme mit dem Support von HE habe ich habe mittlerweile herausgefunden, dass es um die Schreibrechte im User-Temp-Verzeichnis geht, die bei einem WebPack eingeschränkt sind (aber nicht bei einem Virtual Server Managed, auf dem das System zur Einrichtung lief).

    Ich habe aufgrund obiger Informationen von HE im Contao-Forum den folgenden Workaround gefunden, der auch funktioniert: In der Datei "system/initialize.php" den Befehl "putenv('TMPDIR='.ini_get('upload_tmp_dir'));" eintragen.

    Für mich war die Sache erledigt, bis dann von HE die folgende E-Mail bei mir eingegangen ist:

    …wir nehmen Bezug auf das heute mit unserem Kundenservice geführte Telefonat.

    Bei einer Überprüfung der Error-Logs des Contao sind uns Einträge der folgenden Art aufgefallen:

    [08-Jun-2012 08:48:37 UTC] PHP Warning: stream_copy_to_stream() expects parameter 2 to be resource, boolean given in /is/htdocs/wpXXXXXXXX_SCP0J2B0BR/www/domainname.de/system/modules/valumsFileUploader/ValumsFile.php on line 407

    In der entsprechenden Zeile der Datei findet sich folgendes:

    $realSize = stream_copy_to_stream($input, $this->tmpFile);

    Das Attribut tmpFile wird in Zeile 107 so gesetzt:

    $this->tmpFile = tmpfile();

    Die PHP-Funktion tmpfile() verwendet jedoch fehlerhafterweise immer den Wert "/tmp", selbst wenn in der Serverkonfiguration Ihr temporäres Verzeichnis korrekt auf einen anderen Wert gesetzt wurde. Aus Sicherheitsgründen ist auf einem WebPack das Schreiben in das Verzeichnis "/tmp" jedoch nicht möglich.

    Hier sollte statt tmpfile() die PHP-Funktion tempnam() verwendet werden, da dort das zu verwendende Verzeichnis gesetzt werden kann. Weitere Informationen dazu finden Sie hier: http://www.php.net/manual/de/function.tempnam.php

    Wir empfehlen, sich an den Hersteller des Moduls zu wenden, damit dieser eine Anpassung vornimmt.
    Daraufhin habe ich HE mitgeteilt, dass es mit obigem Workaround funktioniert und keine weiteren Maßnahmen notwendig sind. Hierauf hat mit HE wie folgt geantwortet:

    Der Wert für upload_tmp_dir ist bei uns bereits korrekt auf ein beschreibbares Verzeichnis gesetzt (Ihr user_tmp, dessen Pfad Sie im KIS einsehen können).

    Das Problem hier ist, dass das von Ihnen verwendete Modul die Funktion tmpfile() verwendet, die nicht auf das upload_tmp_dir zurückgreift, sondern auf die PHP-Funktion sys_get_tmp_dir(). Diese gibt jedoch auf Linux-Systemen immer, unabhängig von der lokalen Konfiguration, "/tmp" zurück. Daher empfiehlt es sich eher, tempnam() mit dem Pfad aus get_cfg_var('upload_tmp_dir') zu verwenden.

    Wir hoffen, dass wir Ihnen mit diesen Angaben weiterhelfen konnten. Sollten Sie weitere Fragen haben, stehen wir Ihnen telefonisch oder per E-Mail jederzeit gerne zur Verfügung.
    So gut beherrsche ich PHP nicht, dass ich das alles richtig verstehe - deshalb meine Frage: Bedeutet das jetzt, dass man diesen Workaround nicht verwenden soll? Auf jeden Fall funktioniert damit alles, ich lasse das System bei meinem Freund mit Workaround weiter laufen.

    Würdet Ihr die Programmierer von VaumusFileUploader offiziell über den Sachverhalt informieren?

    Herzlichen Dank für die Infos.

    Schmidty

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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