Univention Bugzilla – Bug 25031
IE[89]: Warnung bei zu großen Bildern kommt nicht
Last modified: 2013-02-25 12:23:34 CET
Wenn man versucht bei einem Benutzer ein Bild hochzuladen, das größer ist als 512KB (Grenze im Frontend) sollte eigentlich eine Warnung kommen. Die wird nicht angezeigt und stattdessen passt für den Benutzer nichts ersichtliches.
Das Problem liegt wahrscheinlich daran, dass JavaScript-seitig nicht überprüft werden kann wie groß die Datei ist (in den anderen Browsern geht das). Die Daten werden dann an das Backend geschickt, was den Upload verweigert. Der IE erwartet, dass die Daten per iFrame zurück gesendet werden, also im Format <html><body><textarea>{ ... JSON-Daten ... }</textarea></body></html> Da dies aber nicht der Fall ist (der Server schickt einfach nur JSON-Daten im Body zurück), Schlägt nachher der Zugriff auf das textarea-Element fehl.
*** Bug 27703 has been marked as a duplicate of this bug. ***
Das ist insbesondere dann der Fall, wenn der Request mit statuscode !== 200 beantwortet wird.
Wenn die Fehlererkennung funktioniert müssen auch die UCR-Variablen umc/server/upload/min_free_space und umc/server/upload/max für IE getestet werden (siehe Bug #27415).
Der Bug kann zum Debuggen unter Chrome/FF auch forciert werden, indem in umc.widgets.Uploader.buildRendering() die folgende Option hinzugefügt wird: ==================== this._uploader = new dojox.form.Uploader({ ... force: 'iframe' // → forciert den iframe-Modus für alle Browser }); ====================
Zusammenfassend kann man folgende Probleme nennen: * Der IE prüft vor dem Upload nicht die Dateigröße * Wenn der Upload fehlschlägt, bekommt der Nutzer keinerlei Rückmeldung angezeigt Für den ersten Punkt gibt es leider keinen Fix. Es gibt lediglich die Option, dass das Flash-Plugin (statt dem IFrame-) genutzt wird. Auf diesem Weg könnte die Dateigröße ermittelt werden. Dies wird in diesem Bug jedoch nicht behandelt. Das zweite Problem liegt - wie Alex schon sagte - an dem fehlenden <textarea>-Tag. Ich habe einen Patch für univention-dojo (5.0.21-1) erstellt. Es wird nun versucht auf den Inhalt vom <textarea>-Tag zuzugreifen, wenn dies fehlschlägt, wird der Inhalt vom <body>-Tag genommen. Die serverseitigen Fehlermeldungen werden nun auch im IE korrekt angezeigt. Das betrifft natürlich auch die Fehlermeldung, dass die hochgeladene Datei ggf. zu groß ist - leider geschieht dies erst _nach_ dem Upload. Das Paket ist gebaut; Changelog ist vorhanden.
(In reply to comment #6) > Für den ersten Punkt gibt es leider keinen Fix. Es gibt lediglich die Option, > dass das Flash-Plugin (statt dem IFrame-) genutzt wird. Auf diesem Weg könnte > die Dateigröße ermittelt werden. Dies wird in diesem Bug jedoch nicht > behandelt. Ja > Das zweite Problem liegt - wie Alex schon sagte - an dem fehlenden > <textarea>-Tag. Ich habe einen Patch für univention-dojo (5.0.21-1) erstellt. > Es wird nun versucht auf den Inhalt vom <textarea>-Tag zuzugreifen, wenn dies > fehlschlägt, wird der Inhalt vom <body>-Tag genommen. Die serverseitigen > Fehlermeldungen werden nun auch im IE korrekt angezeigt. leider gibt es auch kein <body>-Tag: { "status": "400 Bad Request", "message": "The size of the uploaded file is too large" }
Header/Body-Tag wird automatisch noch hinzugefügt. Das Problem war, dass ich lediglich das Paket 'univention-dojo' gebaut habe. Damit die Änderungen auch auf einem "normalen" System vorhanden sind, musste 'univention-management-console-frontend' noch mal neu gebaut werden, gegen unsere gefixte Dojo-Version. univention-management-console-frontend (1.0.383-2) Das Paket ist gebaut.
(In reply to comment #8) > Das Problem war, dass ich lediglich das Paket 'univention-dojo' gebaut habe. > Damit die Änderungen auch auf einem "normalen" System vorhanden sind, musste > 'univention-management-console-frontend' noch mal neu gebaut werden, gegen > unsere gefixte Dojo-Version. Stimmt Changelog ist auch vorhanden.
UCS 3.0-2 has been released: http://forum.univention.de/viewtopic.php?f=54&t=1905 If this error occurs again, please use "Clone This Bug".