Bricht der File-Upload in Magento 2 (hier: Magento 2.2.5) ab bei dem Versuch, eine Videodatei in einem statischen Block hochzuladen, kann es an einer zu großen post_max_size liegen. In diesem konkreten Fall war der PHP-Parameter in der php.ini auf 2048M eingestellt, also 2 Gigabyte. Sieht man sich nun bei dem Versuch, eine Datei hochzuladen, den in der Konsole ausgegebenen Fehler an, erhält man die Nachricht, dass der Compiler bei der Abarbeitung des Programmcodes auf einen "Unexpected token" getroffen ist und durch diesem dann einfach nicht mehr weiter machen kann.

 

 

Dieses unerwartete Zeichen erwartet den Compiler direkt nach einer max_file_size-Angabe, die zuvor aus der php.ini-Einstellung errechnet wird (im Grunde wird hier nur die Größenangabe "M" oder "G" abgeschnitten und dafür der Wert mit 1024 bzw. 1024 * 1024 multipliziert.

 

In unserem Falle war der Wert, der hier übergeben werden sollte, somit 2.147.483.648. Sieht erst einmal nicht schlimm aus, ist jedoch deshalb problematisch, da die Funktion, die die post_max_size umrechnet, eine INT-Zahl übergibt. Da bei dieser die Speichergrenze bei 2.147.483.647 erreicht ist, schlägt die ganzzahlige Darstellung in der abfragenden Funktion fehl und unerlaubte Zeichen werden erkannt und die Ausführung des Compilers gestoppt.

 

Ändern wir also "int" zu "float"

 

in vendor\magento\framework\Convert\DataSize.php

 

und alles ist gut (ja, eine Core-Änderung, aber mehr Aufwand hierfür lohnt sich nicht, wir hoffen, dass dieser Umstand in den nächsten Versionen behoben ist!).