CatoTH / antragsgruen

Motions, resolutions and amendments for political conventions
https://motion.tools
GNU Affero General Public License v3.0
95 stars 24 forks source link

Invalid Image: tmp_name wird nicht gesetzt beim speichern eines Antrags #621

Open NikTheDusky opened 2 years ago

NikTheDusky commented 2 years ago

Hi,

wir haben zurzeit ein Problem, welches Verhindert, dass Antragsänderungen gespeicher werden können. Nach außen hin äußert sich das für Nutzer durch einen 500er, in der app.log ist folgendes sichtbar:

2022-01-27 12:14:11 [error][app\models\exceptions\FormError] app\models\exceptions\FormError: Invalid Image in /var/www/website/models/sectionTypes/Image.php:191
Stack trace:
#0 /var/www/website/models/sectionTypes/Image.php(239): app\models\sectionTypes\Image->setMotionData()
#1 /var/www/website/models/forms/AmendmentProposedChangeForm.php(70): app\models\sectionTypes\Image->setAmendmentData()
#2 /var/www/website/models/forms/AmendmentProposedChangeForm.php(115): app\models\forms\AmendmentProposedChangeForm->setSectionData()
#3 /var/www/website/controllers/AmendmentController.php(708): app\models\forms\AmendmentProposedChangeForm->save()
#4 [internal function]: app\controllers\AmendmentController->actionEditProposedChange()
#5 /var/www/website/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array()
#6 /var/www/website/vendor/yiisoft/yii2/base/Controller.php(181): yii\base\InlineAction->runWithParams()
#7 /var/www/website/vendor/yiisoft/yii2/base/Module.php(534): yii\base\Controller->runAction()
#8 /var/www/website/vendor/yiisoft/yii2/web/Application.php(104): yii\base\Module->runAction()
#9 /var/www/website/vendor/yiisoft/yii2/base/Application.php(392): yii\web\Application->handleRequest()
#10 /var/www/website/web/index.php(22): yii\base\Application->run()
#11 {main}

Die im Dokument vorhandenen Bilder sind alle im JPEG-Format abgelegt. Für mich sieht das aus, als ob in https://github.com/CatoTH/antragsgruen/blob/main/models/sectionTypes/Image.php#L191 die Variable tmp_name in der Funktion SetMotionData nicht korrekt gesetzt wird. Woran genau könnte das liegen?

CatoTH commented 2 years ago

Hm... wie groß ist das Bild denn? Manchmal passiert das, wenn beim Upload der Server dazwischen funkt, z.B. weil die Datei zu groß ist...

NikTheDusky commented 2 years ago

@CatoTH Im betroffenen Dokument sind 5 Bilder mit Dateigrößen von 80, 69, 57, 68 und 50 kB abgelegt, alle im JPEG-Format. Das größte Bild hat 1578 Pixel größe auf einer Kante, alles andere ist kleiner. Das klingt für mich nicht gerade so, als ob PHP da zum Beispiel den Upload limitieren würde oder Imagemagick damit Probleme hätte o.Ä. (Die Bilder sind ja auch schon erfolgreich hochgeladen, soweit ich weiß, wird bei einem POST beim Speichern eines Antrags nur der Text rübergesendet)

CatoTH commented 2 years ago

Ok, wie im anderen Issue beschrieben, scheint ja eingestellt zu sein, dass man Änderungsanträge für Bilder stellen können soll. Das wird noch nicht unterstützt, bzw. es gab auch bis jetzt noch nie den Bedarf dafür. Falls das nicht explizit von denjenigen benötigt wird, die das System einsetzen, wäre meine Empfehlung, das einfach abzustellen. Dazu müsste man (über die Web-UI) unter Einstellungen -> [Antragstyp] -> Abschnitte bei dem Bild das Häkchen bei "In Änderungsanträgen" entfernen, das müsste standardmäßig eh deaktiviert sein.