Magento:カテゴリ画像のアップロード上限サイズ

YK
2025-02-10
2025-02-10

こんにちは。

Magentoの管理画面からアップロードできるカテゴリ画像は、上限サイズが設定されています。
この上限サイズは、システムの設定やサーバ環境に依存しており、必要に応じて変更することが可能です。

今回は、そこのカテゴリ画像の上限サイズの仕組みと、その変更方法について調べてみました。

管理画面に表示される上限サイズ

カテゴリ画像は、[Catalog>Categories] よりカテゴリを選択し、[Content>Category Image] からアップロードする事ができます。

この時、(上記のケースでは)アップロードボタンの下に
 Maximum file size: 2 MB 
と表示されています。
これは、アップロードできる上限サイズが表示されているのですが、この「2MB」ってなんの値やろって思いますよね…?


結論としては、以下①②のいずれか小さい方の値が、上限サイズとして表示されています。

 

①MagentoのmaxFileSize設定

MagentoのXMLファイルに設定されている maxFileSize の値です
アプリケーションレベルでファイルサイズを制限したい場合に定義します。
これにより、不要に大きなファイルがサーバにアップロードされるのを防ぐことができます。

 

②PHPの設定

サーバの php.iniファイル等で設定される upload_max_filesize と post_max_size の値です。
実際にアップロード可能なサイズは、このPHP設定によって最終的に制限されます。

  • upload_max_filesize : アップロード可能な最大ファイルサイズ
  • post_max_size   : POSTリクエスト全体の最大サイズ

 

なので、例えば maxFileSize が4MBに設定されていても、PHPのupload_max_filesize が2MBの場合、2MBを超えるファイルをアップロードする事はできません。
その場合、管理画面には、Maximum file size: 2 MB と表示されます。

 

上限サイズの変更方法は?

上限サイズを変更するには、以下の2つの方法があります。

 

方法1:XMLファイルの maxFileSize を変更

この方法は、PHPのupload_max_filesizepost_max_size より小さいサイズに制限したい場合に有効です。

カテゴリ画像のmaxFileSizeを変更するには、Magento_Catalogモジュールのproduct_form.xmlをカスタマイズします。

コアファイルのproduct_form.xml内には、下記のようなmaxFileSizeの設定があります。
この値を制限したいサイズにカスタマイズすればOKです。
maxFileSizeはバイト単位で指定する必要があります。

<imageUploader>
    <settings>
        <required>false</required>
      
        ・・・
        
        <allowedExtensions>jpg jpeg gif png</allowedExtensions>
        <maxFileSize>4194304</maxFileSize> <!-- 4MBを指定 -->
    </settings>
</imageUploader>

なお、コアファイルの直接編集は非推奨となっています。
以下のようなカスタマイズ用のXMLを用意し、maxFileSizeの値を変更しましょう。

・独自モジュールを使用する場合
 ファイルパス:app/code/[Vendor]/[Module]/view/adminhtml/ui_component/product_form.xml

・テーマを使用する場合
 ファイルパス:app/design/adminhtml/[Vendor]/[Theme]/Magento_Catalog/ui_component/product_form.xml

 

方法2:PHP の設定を変更

より大きなファイルをアップロードしたい場合、PHPのupload_max_filesizepost_max_sizeの設定値を調整します。

例えばphp.iniファイルを編集し、以下のように設定します。

upload_max_filesize = 10M
post_max_size = 12M

あわせてXMLファイルのmaxFileSizeも、PHPの設定値以下のサイズに調整すればOKです。

但し、PHPの設定値を変更する場合は、他の設定値も含め、環境や要件に応じてサーバのリソースやセキュリティリスクに注意しながら調整してください。