WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 04.01.2019 09:43:27

hansis100
Mitglied

Problem beim Upload von Fotos

Habe ein Problem beim Upload von Fotos.
Bei meinem Formular können 2 Fotos hochgeladen werden.
Ich habe ein Größenbeschränkung von 5MB reingegeben.

Ich lade nun 2 Fotos hoch. Das erste ist kleiner als 5MB, das zweite ist größer asl 5MB. Es kommt nun ein Fehler beim Foto 2. Das ist auch richtig so.
Allerdings wird das Foto 1 schon hochgeladen.
Jetzt tausche ich das Foto 2 gegen ein kleineres aus und bestätige nochmals mit OK.
Nun passt alles. Das Foto 2 wird hochgeladen, allerding werden die Infos von Foto 1 nicht in die Datenbank geschrieben. Da dürfte es einen Fehler geben.
Oder mache ich etwas falsch?

lg
Hansi

Offline

#2 04.01.2019 23:53:48

mrbaseman
Developer

Re: Problem beim Upload von Fotos

Hallo Hansi,

ja, ich glaub ich beginn das Problem zu verstehen: Der Upload wird abgebrochen, wenn das Limit für die Gesamtgröße erreicht ist. Zu dem Zeitpunkt ist das erste Bild aber schon hochgeladen. Bist du sicher dass die erste Datei beim zweiten Versuch noch mit selektiert war?
Wenn ja, dann müsste der Upload eigentlich auch mit in die Datenbank geschrieben werden.
Wenn nein, dann ist aber vom ersten Versuch noch der Upload vorhanden.
Das wäre an sich vielleicht nicht so tragisch, wenn einzelne Dateien vom zulässigen Typ und kleiner als die Maximalgröße vorhanden sind. Wenn die Datei beim zweiten Versuch mit ausgewählt ist und trotzdem nicht in die DB geschrieben wird. Wenn die Datei mit ausgewählt war und trotzdem nicht geschrieben wird, dann muss ich noch mal weiter forschen warum.

Offline

#3 09.01.2019 08:07:09

hansis100
Mitglied

Re: Problem beim Upload von Fotos

Hallo!
So habe jetzt nochmals getestet. Hier der Ablauf

Ich möchte gerne mit mpforms Einträge erstellen und 2 Fotos hochladen. Die Größe habe ich auf 5 MB beschränkt.
Foto 1 : 4 MB  (Foto1.jpg)
Foto 2: 6 MB   (Foto2.jpg)

Wenn ich nun auf Absenden klicke, passiert folgendes:

  • Fehlermeldung: "Fehler beim Hochladen der Datei: Foto2.jpg (Datei ist zu groß, ....)"

  • Upload: Foto1.jpg wurde allerdings schon hochgeladen und liegt im richtigen Verzeichnis

  • Datenbank: noch kein Eintrag in der Datenbank erstellt

Nun ändere ich das Foto ab auf Foto3.jpg (kleiner als 5MB).
Foto1.jpg wird nicht geändert.

Nun passiert folgendes:

  • Zusammenfassung: Es erscheint die Übersicht der Einträge. Dabei sieht man, daß Foto1.jpg und Foto3.jpg angegeben sind.

  • Upload: Foto1.jpg und Foto3.jpg wurden hochgeladen und liegt im richtigen Verzeichnis

  • Datenbank: Eintrag in DB erstellt. Allerdings fehlt der Eintrag für Foto1.jpg

Hoffe die Analyse passt smile

lg
Hansi

Offline

#4 09.01.2019 08:38:21

florian
Administrator

Re: Problem beim Upload von Fotos

Beiträge vom Ursprungsthread zwecks Übersichtlichkeit abgetrennt


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#5 10.01.2019 00:05:10

mrbaseman
Developer

Re: Problem beim Upload von Fotos

Ok, danke für die Analyse. Dann muss ich mir das doch nochmal genauer anschauen.

Offline

#6 15.01.2019 20:14:09

mrbaseman
Developer

Re: Problem beim Upload von Fotos

Hallo Hansi,

der Fehler mit dem Größenlimit war etwas irreführend. Ich habe jetzt gefunden woran es lag, dass das erste Foto nicht in der Datenbank (und zwar in der Results-Tabelle) aufgetaucht ist.
Bei der Erweiterung, dass man mit einem Uploadfeld mehrere Dateien auswählen kann, habe ich die dafür zuständige Variable einfach vergessen anzupassen. Bei der Email an den Benutzer, bei der Email an den Site-Betreiber, bei den auf der Webseite angezeigten Daten und in der Submissions-Tabelle wurden mehrere Dateien berücksichtigt, aber beim Eintrag in der Results-Tabelle wurde schlicht und einfach immer der letzte Pfad, der verarbeitet wurde genommen (ganz unabhängig davon, ob dies im ersten Versuch geklappt hat oder davor schon ein Fehler beim Upload aufgetreten ist). Hat man nur eine Datei ausgewählt, war alles gut. Nur beim Upload von mehreren Dateien gab es das Problem und nur bei dem Wert, der für das Upload-Feld in die Results-Tabelle geschrieben wird.

Das ist in Version 1.3.25 jetzt korrigiert. Werden mehrere Dateien hochgeladen, werden hier jetzt auch die Pfade für alle Dateien durch Komma getrennt in das Tabellenfeld für den Uploadpfad eingetragen.

Übrigens das Größenlimit gilt für die Summe aller hochgeladenen Daten. Sind dort 5MB eingestellt, dann kann man z.B. 1 Bild mit 5MB oder 5 Bilder mit 1 MB hochladen. Wenn häufiger mehrere große Bilder übertragen werden sollen, dann solltest du den Wert höher setzen. Wäre es ein Limit pro Datei, dann könnte man ja relativ schnell den Plattenplatz auf dem Server vollschreiben indem man einfach viele Dateien in der maximal zulässigen Größe überträgt. Wenn man natürlich viel mit Uploads arbeitet und entsprechend auch Speicherplatz vorhält, dann muss man eben diese Werte an den eingenen Use-Case anpassen.

Es gibt noch ein weiteres Limit für die Anzahl: Mehr als 128 Dateien auf einmal geht auch nicht - sonst könnte man Millionen von leeren Dateien übertragen und so über die Anzahl der Dateien in einem Verzeichnis das Dateisystem auf dem Server an seine Grenzen treiben. Das ist momentan ein hart condierter Wert - es wäre aber auch kein Problem den noch etwas hoch zu setzen oder auch noch über die Einstellungen anpassbar zu machen.

Viele Grüße,
Martin

Offline

#7 22.01.2019 10:01:06

hansis100
Mitglied

Re: Problem beim Upload von Fotos

Hallo Martin.

Danke, habe die neue Version heruntergeladen und getestet.

Gleiches Szanario.
Foto1: kleiner als 5MB
Foto2: größer als 5BM
Foto3: kleiner als 5MB
Foto4: kleiner als 5MB

Nach dem Klick auf "OK" erscheint die Fehlermeldung, dass das Foto2 zu groß ist.

--> kein DB-Eintrag vorhanden (OK)
--> Foto1, Foto3, Foto4 schon hochgeladen

Ich ändere das Foto, dass es kleiner als 5MB ist und klicke wieder auf "OK"
OK-Meldung erscheint.

--> DB-Eintrag teilweise vorhanden (ERROR)
--> Foto1, Foto2, Foto3, Foto4 sind hochgeladen (OK)
--> Function "after upload" wurde ausgeführt (OK)

Nun ist noch ein Fehler in der Datenbank. Nach dem erneuten Hochladen ist nur der Lnk von "Foto2" (das geändert wurde) in der Datenbank.
Die Links von Foto1, Foto3, Foto4 sind nicht geschrieben worden.

Größenlimit: das kann ich für die Gesamtheit nicht nachvollziehen. Meine Fotos hatten alle über 3 MB und das wären dann gesamt 12 MB bei einer Beschränkung von 5 MB


lg
hansi

Offline

#8 22.01.2019 10:25:19

mrbaseman
Developer

Re: Problem beim Upload von Fotos

Hallo Hansi,

vielleicht reden wir da aneinander vorbei. Du wählst schon mehrere Fotos mit einem Upload-Element hoch? Oder hast du pro Foto ein separates Feld im Formular?

Und mit "DB-Eintrag" meinst du die Results-Tabelle, richtig?

Und beim zweiten Anlauf mit dem verkleinerten Foto sind auch wieder alle 4 ausgewählt gewesen und trotzdem nur der Pfad zu Foto2 in die Results-Tabelle geschrieben worden, auch mit Version 1.3.25 noch?

Offline

#9 22.01.2019 11:30:18

hansis100
Mitglied

Re: Problem beim Upload von Fotos

Hallo Martin!

Ja wir reden aneinander vorbei.
Ich habe für jedes Foto ein eigenes Upload-Feld definiert.

Und dabei hab ich das Problem.

Hab noch gar nicht gemerkt, dass man mehrere Dateien auswählen kann smile
Na egal, das ist jetzt schon zu spät.

Das wäre ein Vorschlag für eine nächste Version:  Auswahl ob man mehrere oder nur eine Datei hochladen kann.
Was mir noch aufgefallen ist, sind die akzeptierten Dateitypen: hier wird zw. Groß- und Kleinschreibung unterschieden!

lg
Hansi

PS: Nochmals ein großes Lob für dieses Modul!!!!

Beitrag geändert von hansis100 (22.01.2019 11:57:25)

Offline

#10 22.01.2019 13:39:21

mrbaseman
Developer

Re: Problem beim Upload von Fotos

Hallo Hansi,

ah, ok, dann wirkt das Größenlimit auf jedes Feld. Wenn in jedem Feld genau eine Datei übertragen wird, dann darf die eben das Limit nicht überschreiten. Bei 4 Feldern kann also in Summe 4x das Limit übertragen werden, in 4 Dateien, die jeweils knapp unter dem Limit sind oder in 8 Dateien, die jeweils knapp die Hälfte des Limits ausschöpfen und jeweils 2 in einem Feld hochgeladen werden usw.

Was in dem Fall mit mehreren Feldern jetzt mit dem Datenbankeintrag schief geht, muss ich nochmal testen. Vielleicht spielt da jetzt die Fehlermeldung mit dem Überschreiten des Größenlimits doch eine Rolle.

Die Auswahl, ob man eine oder mehrere Dateien auswählen kann bedeutet wahrscheinlich intern einen ziemlichen Umbau. Ich weiß noch, als ich in 1.1.12 eingeführt habe, dass Mehrfachauswahl möglich ist, war das nicht ganz trivial. Was eben für eine Datei eine Variable war, wurde plötzlich zu Listen, über die man iterieren muss, um die Dateien serverseitig entgegenzunehmen. Macht man das jetzt konfigurierbar, dann braucht man auch die ältere Code-Variante wieder. Aber mal schauen... mir fällt gerade ein Trick ein, wie man vielleicht beide Fälle erschlägt, indem man das Datenformat vor der Verarbeitung umwandelt.

Zu den Dateinamen: Groß- und Kleinschreibung wird auf im Serverbereich weit verbreiteten Unix-/Linuxsystemen unterschrieden. Das hat schon seine Richtigkeit, dass Datei.JPG und Datei.jpg zwei verschiedene Dateien sind. Die können unter Linux auch im gleichen Verzeichnis liegen. Weiterverarbeitende Skripte müssten die Dateitypen dann separat mit *.jpg *.JPG auflisten, oder noch besser, um alle Groß- und Kleinschreibungen mit zu berücksichtigen *.[jJ][pP][gG] oder um auch *.jpeg usw. zu erfassen: *.[jJ][pP]?([eE])[gG]. Oft wird aber eher schlampig nur nach der Variante in Kleinbuchstaben und vielleicht noch nach dem großgeschriebenen Pendant gesucht.
Von daher ist es gut, dass schon beim Upload angegeben werden kann, welche der denkbaren Varianten überhaupt zulässig sind.

Ach ja, und mit Datenbankeintrag meinst du die Results-Tabelle, richtig? (nur um sicher zu gehen, dass wir da nicht auch aneinander vorbei reden)

viele Grüße,
Martin

Offline

#11 22.01.2019 22:29:10

mrbaseman
Developer

Re: Problem beim Upload von Fotos

Ich kann das Problem auch mit mehreren Upload-Feldern reproduzieren. In dem Fall wird ja über ein Feld eine Datei schon im ersten Anlauf hochgeladen, die andere erst nachdem man sie verkleinert hat. Erst beim zweiten Anlauf wird der Datenbank-Eintrag in die Results-Tabelle geschrieben. Die bereits hochgeladene Datei wird aber beim zweiten Versuch als bereits hochgeladen angezeigt. Beide werden in die Submissions-Tabelle eingetragen, aber nur die, die im letzten Anlauf hochgeladen werden. Ja... das muss ich noch gerade ziehen...

Offline

#12 23.01.2019 00:01:11

mrbaseman
Developer

Re: Problem beim Upload von Fotos

Hallo Hansi,

kannst du bitte die angehängte Vorabversion nochmal testen?

viele Grüße,
Martin

Offline

#13 23.01.2019 08:31:45

hansis100
Mitglied

Re: Problem beim Upload von Fotos

Hallo Martin!

Habe es getestet.

Es funktioniert wunderbar.

Danke
Hansi

Offline

#14 23.01.2019 08:37:44

hansis100
Mitglied

Re: Problem beim Upload von Fotos

mrbaseman schrieb:

Hallo Hansi,

ah, ok, dann wirkt das Größenlimit auf jedes Feld. Wenn in jedem Feld genau eine Datei übertragen wird, dann darf die eben das Limit nicht überschreiten. Bei 4 Feldern kann also in Summe 4x das Limit übertragen werden, in 4 Dateien, die jeweils knapp unter dem Limit sind oder in 8 Dateien, die jeweils knapp die Hälfte des Limits ausschöpfen und jeweils 2 in einem Feld hochgeladen werden usw.

OK, das ist mir nun klar geworden.

mrbaseman schrieb:

Was in dem Fall mit mehreren Feldern jetzt mit dem Datenbankeintrag schief geht, muss ich nochmal testen. Vielleicht spielt da jetzt die Fehlermeldung mit dem Überschreiten des Größenlimits doch eine Rolle.

Mit der neuen Version funktioniert es nun.

mrbaseman schrieb:

Die Auswahl, ob man eine oder mehrere Dateien auswählen kann bedeutet wahrscheinlich intern einen ziemlichen Umbau. Ich weiß noch, als ich in 1.1.12 eingeführt habe, dass Mehrfachauswahl möglich ist, war das nicht ganz trivial. Was eben für eine Datei eine Variable war, wurde plötzlich zu Listen, über die man iterieren muss, um die Dateien serverseitig entgegenzunehmen. Macht man das jetzt konfigurierbar, dann braucht man auch die ältere Code-Variante wieder. Aber mal schauen... mir fällt gerade ein Trick ein, wie man vielleicht beide Fälle erschlägt, indem man das Datenformat vor der Verarbeitung umwandelt.

Vielleicht kommt es ja smile

mrbaseman schrieb:

Zu den Dateinamen: Groß- und Kleinschreibung wird auf im Serverbereich weit verbreiteten Unix-/Linuxsystemen unterschrieden. Das hat schon seine Richtigkeit, dass Datei.JPG und Datei.jpg zwei verschiedene Dateien sind. Die können unter Linux auch im gleichen Verzeichnis liegen. Weiterverarbeitende Skripte müssten die Dateitypen dann separat mit *.jpg *.JPG auflisten, oder noch besser, um alle Groß- und Kleinschreibungen mit zu berücksichtigen *.[jJ][pP][gG] oder um auch *.jpeg usw. zu erfassen: *.[jJ][pP]?([eE])[gG]. Oft wird aber eher schlampig nur nach der Variante in Kleinbuchstaben und vielleicht noch nach dem großgeschriebenen Pendant gesucht.
Von daher ist es gut, dass schon beim Upload angegeben werden kann, welche der denkbaren Varianten überhaupt zulässig sind.

Danke für die Info mit den RegeExe-Einstellungen

mrbaseman schrieb:

Ach ja, und mit Datenbankeintrag meinst du die Results-Tabelle, richtig? (nur um sicher zu gehen, dass wir da nicht auch aneinander vorbei reden)

Offline

#15 23.01.2019 20:59:18

mrbaseman
Developer

Re: Problem beim Upload von Fotos

Ich hab jetzt mal die Vorabversion auf Github als 1.3.26 veröffentlicht.

Edit: PS: Die Mehrfachauswahl bei Uploadfeldern optional abschaltbar zu machen kommt vielleicht dann in einer der nächsten Versionen. Ich habs mir mal vorgemerkt

Beitrag geändert von mrbaseman (23.01.2019 21:09:40)

Offline

#16 12.02.2019 21:37:46

mrbaseman
Developer

Re: Problem beim Upload von Fotos

Hallo Hansi,

das von dir gewünschte Feature, dass man die Mehrfachauswahl bei Uploadfeldern wieder abschalten kann ist in mpform 1.3.28 umgesetzt. Bei den Optionen zum Upload (dort wo man z.B. auch die maximale Größe einstellen kann), gibt es nun einen neuen Schalter, mit dem man Mehrfachauswahl an oder ausschalten kann. Das ganze kann pro Formular eingestellt werden und gilt dann für alle Uploadfelder dieses Formulars.

viele Grüße,
Martin

Offline

Fußzeile des Forums

up