Skip to content

Commit 70b3318

Browse files
committed
MC-5184: Missing validation message when uploading big image
Add ImageMaxFileSizeDesktop
1 parent 472b336 commit 70b3318

File tree

5 files changed

+30
-6
lines changed

5 files changed

+30
-6
lines changed

app/code/Magento/PageBuilder/Model/Config/ContentType/AdditionalData/Provider/Uploader/MaxFileSize.php

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313

1414
/**
1515
* Provides maximum file size for uploader
16+
*
17+
* Will provide the lower of the following two values:
18+
* - upload_max_filesize from php.ini config
19+
* - staticFileSize argument passed to constructor
1620
*/
1721
class MaxFileSize implements ProviderInterface
1822
{
@@ -21,21 +25,36 @@ class MaxFileSize implements ProviderInterface
2125
*/
2226
private $fileSize;
2327

28+
/**
29+
* @var int
30+
*/
31+
private $staticFileSize;
32+
2433
/**
2534
* @param Size $fileSize
35+
* @param int $staticFileSize
2636
*/
27-
public function __construct(Size $fileSize)
28-
{
37+
public function __construct(
38+
Size $fileSize,
39+
$staticFileSize = null
40+
) {
2941
$this->fileSize = $fileSize;
42+
$this->staticFileSize = $staticFileSize;
3043
}
3144

3245
/**
3346
* @inheritdoc
3447
*/
3548
public function getData(string $itemName) : array
3649
{
50+
// dynamically set max file size based on the lower of php ini config and static value (if present)
51+
$maxFileSize = min(array_filter([
52+
$this->staticFileSize ?? 0,
53+
$this->fileSize->getMaxFileSize()
54+
]));
55+
3756
return [
38-
$itemName => $this->fileSize->getMaxFileSize()
57+
$itemName => $maxFileSize
3958
];
4059
}
4160
}

app/code/Magento/PageBuilder/etc/adminhtml/di.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,4 +536,9 @@
536536
</argument>
537537
</arguments>
538538
</virtualType>
539+
<virtualType name="ImageMaxFileSizeDesktop" type="Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Provider\Uploader\MaxFileSize">
540+
<arguments>
541+
<argument name="staticFileSize" xsi:type="number">4194304</argument>
542+
</arguments>
543+
</virtualType>
539544
</config>

app/code/Magento/PageBuilder/view/adminhtml/pagebuilder/content_type/banner.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@
284284
<item name="uploaderConfig" xsi:type="array">
285285
<item name="isShowImageUploadInstructions" xsi:type="boolean">false</item>
286286
<item name="isShowImageUploadOptions" xsi:type="boolean">true</item>
287-
<item name="maxFileSize" xsi:type="object">Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Provider\Uploader\MaxFileSize</item>
287+
<item name="maxFileSize" xsi:type="object">ImageMaxFileSizeDesktop</item>
288288
<item name="allowedExtensions" xsi:type="string">jpg jpeg gif png</item>
289289
<item name="component" xsi:type="string">Magento_PageBuilder/js/form/element/image-uploader</item>
290290
<item name="componentType" xsi:type="string">imageUploader</item>

app/code/Magento/PageBuilder/view/adminhtml/pagebuilder/content_type/image.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
</appearances>
7979
<additional_data>
8080
<item name="uploaderConfig" xsi:type="array">
81-
<item name="maxFileSize" xsi:type="object">Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Provider\Uploader\MaxFileSize</item>
81+
<item name="maxFileSize" xsi:type="object">ImageMaxFileSizeDesktop</item>
8282
<item name="allowedExtensions" xsi:type="string">jpg jpeg gif png</item>
8383
<item name="component" xsi:type="string">Magento_PageBuilder/js/form/element/image-uploader</item>
8484
<item name="componentType" xsi:type="string">imageUploader</item>

app/code/Magento/PageBuilder/view/adminhtml/pagebuilder/content_type/slide.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@
284284
<item name="uploaderConfig" xsi:type="array">
285285
<item name="isShowImageUploadInstructions" xsi:type="boolean">false</item>
286286
<item name="isShowImageUploadOptions" xsi:type="boolean">true</item>
287-
<item name="maxFileSize" xsi:type="object">Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Provider\Uploader\MaxFileSize</item>
287+
<item name="maxFileSize" xsi:type="object">ImageMaxFileSizeDesktop</item>
288288
<item name="allowedExtensions" xsi:type="string">jpg jpeg gif png</item>
289289
<item name="component" xsi:type="string">Magento_PageBuilder/js/form/element/image-uploader</item>
290290
<item name="componentType" xsi:type="string">imageUploader</item>

0 commit comments

Comments
 (0)