Attachments Mod: Fehlermeldung beim upload

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Attachments Mod: Fehlermeldung beim upload

Beitrag von Dungeonwatcher »

Hi! :cool:

Einige meiner User berichten mir, das es beim Hochladen von Videos als Attachment zu der Fehlermeldung: "Es wurde versucht eine leere Datei hoch zu laden." kommt. Diese Meldung taucht nach dem scheinbar erfolgreichen Hochladen auf. Allerdings ist die entsprechende Datei nicht auf dem Server angekommen. Ich kann dies irgendwie nicht nachvollziehen, vermute jedoch einen Zusammenhang mit der Dateigröße. Zumindest lässt mich das der entsprechende PHP Code vermuten:

Code: Alles auswählen

$r_file = trim(basename($this->filename));
$file = $HTTP_POST_FILES['fileupload']['tmp_name'];
$this->type = $HTTP_POST_FILES['fileupload']['type'];

if (isset($HTTP_POST_FILES['fileupload']['size']) && $HTTP_POST_FILES['fileupload']['size'] == 0)
{
	message_die(GENERAL_ERROR, 'Es wurde versucht eine leere Datei hoch zu laden.');
}
Frage an die Profis, was läuft hier vermutlicherweise schief?

Bye/2
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Da habe ich spontan eine Frage:
Wie groß sind die Videos, die hochgeladen werden und wie groß kann PHP "entgegennehmen"?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

'n Abend! :cool:

Also in der php.ini habe ich 10MB fesgelegt:

Code: Alles auswählen

upload_max_filesize = 10M
und die Dateien sind definitiv größer.

Gut das erklärt natürlich das es zu einer Fehlermeldung kommt. Nur warum spricht die von "leere Datei"?

Hmmm, so auf Anhieb weiss ich nicht ob ich den Text dieser deutschen Fehlermeldung selber irgendwann eingefügt/übersetzt habe oder ob er schon im Mod so drinn steht. Auf jeden Fall ist sie dann aber wohl falsch, denn "Es wurde versucht eine zu große Datei hoch zu laden." währe dann wohl besser, oder?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Naja, ich vermute, daß hier der MOD noch einen (naja) Bug hat.
Denn die Datei ist ja dann "nicht" vorhanden und demnach "leer".
Soweit richtig, aber irreführend ausgedrückt...
Und "groß" kann ja nicht gemessen werden, denn die Datei steht PHP ja nicht zur Verfügung ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

[quote="oxpus";p="70366"]Naja, ich vermute, daß hier der MOD noch einen (naja) Bug hat.
Denn die Datei ist ja dann "nicht" vorhanden und demnach "leer".[/quote]

Ähm, das währe dann sehr ärgerlich. :(
Soweit richtig, aber irreführend ausgedrückt...
Und "groß" kann ja nicht gemessen werden, denn die Datei steht PHP ja nicht zur Verfügung ;)
Ähm, du hast nicht zufällig auch 'nen Fix parat? ;)
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wie denn?
PHP kann eine Datei erst prüfen, wenn sie verfügbar ist. Wenn aber die Einstellungen eine Datei nicht bereitstellen, weil eben die Upload-Grenze überschritten wurde, kann man nichts fixen ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

(ein verschlafenes) Moin! :cool:

[quote="oxpus";p="70379"]PHP kann eine Datei erst prüfen, wenn sie verfügbar ist. Wenn aber die Einstellungen eine Datei nicht bereitstellen, weil eben die Upload-Grenze überschritten wurde, kann man nichts fixen ;)[/quote]

Hmmm, naja, dann ist der Text diese Fehlermeldung ja doch falsch?

Ich habe heute früh die Dateigröße für den Upload auf 250MB und im Attachments Mod alles auf Undendlich gesetzt. Der Test mit einer 60MB großen Datei verlief anschließen erfolgreich. Es lag also definitiv an diesen Einstellungen.

Gibt's eigentlich eine Möglichkeit die Dateigröße zu prüfen bevor die kplt. Datei hochgeladen wurde, mit dem Wert in der PHP.INI bzw. im Attachments Mod zu vergleichen und notfalls gleich das hochladen zu verweigern?
Zuletzt geändert von Dungeonwatcher am Sa 24.Feb, 2007 15:01, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Gibt's eigentlich eine Möglichkeit die Dateigröße zu prüfen bevor die kplt. Datei hochgeladen wurde
Nicht mit PHP, da PHP schliesslich auf dem Server und nicht auf dem Client (also im Browser des Users) ausgeführt wird.
Ausser Scriptsprachen wie Java fällt mir da nicht so viel ein...
Hmmm, naja, dann ist der Text diese Fehlermeldung ja doch falsch?
Genau eben nicht, denn wenn die Datei nicht greifbar ist, ist die Dateigrösse ja auch 0, oder ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

[quote="oxpus";p="70392"]
Gibt's eigentlich eine Möglichkeit die Dateigröße zu prüfen bevor die kplt. Datei hochgeladen wurde
Nicht mit PHP, da PHP schliesslich auf dem Server und nicht auf dem Client (also im Browser des Users) ausgeführt wird.
Ausser Scriptsprachen wie Java fällt mir da nicht so viel ein...[/quote]

Hmmm, dann sollten die Grenzwerte direkt angezeigt werden.
Hmmm, naja, dann ist der Text diese Fehlermeldung ja doch falsch?
Genau eben nicht, denn wenn die Datei nicht greifbar ist, ist die Dateigrösse ja auch 0, oder ;)
Dieser Logik kann ich nicht folgen. ^6

Wenn die Datei zu groß ist, muss es die entsprechende Fehlermeldung geben, dito wenn eine leere Datei hochgeladen wird. Was ist überhaupt eine leere Datei?

Wenn nach beenden des hochladens das System feststellt die Datei ist zu groß kann/darf es nicht behaupten sie sei leer oder nicht vorhanden. Wenn das System behauptet da ist nichts, dann muss es auch genau das sagen. Nur in diesem Fall ist da ja eine Datei, wenn auch zu groß und zu groß ist halt nicht leer bzw. nicht vorhanden.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wenn nach beenden des hochladens das System feststellt die Datei ist zu groß kann/darf es nicht behaupten sie sei leer oder nicht vorhanden.
Öh, genau das ist aber doch der Fall:
PHP bekommt den Dateinamen in $_FILES mitgeteilt, da die Datei aber nicht nach dem hochgeladen bereitgestellt wurde (weil eben zu groß) ist der Inhalt des "Streams" 0 Byte groß.
Die Fehlermeldung ist demnach korrekt.

Nochmal:
Der "Bug" ist hier eher in der Art der Fehlerinterpretation zu suchen, hier kann man aber nicht genauer auswerten, da eine 0-Byte Datei auch viele andere Ursachen ausser der möglichen Upload-Grösse haben kann. Acyd hat hier bereits die korrekte Fehlermeldung gewählt und glaube mir, er kennt sich mit PHP wirklich aus.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Moin! :cool:

Tja, dann muss ich wohl damit leben. ;)

Es gibt doch die Möglichkeit mittels

Code: Alles auswählen

<? echo ini_get('upload_max_filesize'); ?>
die max. Uploadgröße aus der PHP.INI auszulesen. Wie müsste der Aufruf aussehen, damit ich diese Angabe in das ACP bekomme, damit aus

Code: Alles auswählen

$lang['Max_filesize_attach_explain'] = 'Maximale Dateigröße für Attachments. Ein Wert von 0 bedeutet "unbegrenzt". Diese Einstellung ist begrenzt durch die Server Konfiguration. Wenn z.B. in der PHP Konfiguration nur eine maximale Upload Größe von 2 MB defniert ist, dann kann dieser Wert auch nicht vom Attachment Mod überschritten werden.';
dies wird:

Code: Alles auswählen

$lang['Max_filesize_attach_explain'] = 'Maximale Dateigröße für Attachments. Ein Wert von 0 bedeutet "unbegrenzt". Diese Einstellung ist begrenzt durch die Server Konfiguration. Wenn z.B. in der PHP Konfiguration nur eine maximale Upload Größe von 2 MB defniert ist, dann kann dieser Wert auch nicht vom Attachment Mod überschritten werden. Aktuell sind maximal [b]XXX[/b] zulässig.';
Bei XXX sollte dann der aktuelle Wert aus der PHP.INI stehen.

Ebenso schön währe es auch, wenn über dem Attahment Feld "Attachment hinzufügen" der Text "Wenn du kein Attachment hinzufügen möchtest, dann lasse die Felder einfach leer." um den Zusatz erweitert würde: "Die maximale Dateigröße darf YYY betragen.. Hierbei sollte YYY der Wert sein, der im ACP eingestellt ist.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Na denn mal ran ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten