ECCUBEでアップロードできない。upload_max_filesizeを設定する場所
2017/03/10
ECCUBEでテンプレートファイルがアップロードできない場合の対処方法
ECCUBEで「テンプレートファイルがアップロードされていません」のエラーが出た
この記事は、ECCUBEでテンプレートファイルをアップロードしようとして、うまくアップロードできない不具合の対処方法の解説記事です。
より具体的には、ECCUBEでテンプレートファイルをアップロードしようとしたところ、ファイルの容量が原因でエラーが出た、という場合の対処方法です。
ECCUBEでテンプレートファイルをアップロードしようとしたところ、「※ テンプレートファイルがアップロードされていません。」と表示されます。
ファイルを選択しても表示されます。
「※ テンプレートファイルがアップロードされていません。」と表示されますが、これはファイルの容量が大きくてアップロードできないことで起こるエラーです。
これは ECCUBEのプログラムの中でファイルの容量制限に引っかかっているわけではなく、PHPの設定側でファイルの容量制限に引っかかっているため、そのエラーの処理をうまく ECCUBE側で受け取れていないため、アップロードされたファイルの情報を受け取ることができず、「テンプレートファイルがアップロードされていません。」というエラーとなっているエラーメッセージなのです。
ECCUBEのファイルアップロード容量を拡張させる
エラーの原因は、ファイルのアップロード容量制限より大きなファイルをアップロードしようとしていることです。
そのため、対応としては、ファイルのアップロードファイルサイズの制限を拡張させる設定を行います。
1.ECCUBEの設定を変更する
2.php.iniの設定を変更する
ECCUBEの設定を変更する(.htaccess)
ECCUBEをインストールすると、.htaccessがせってされ、それによってファイルのアップロードできるファイルのサイズ制限が設定されます。
「システム設定」-「システム情報」で表示される phpinfo()の情報を見ると、下記の様になっています。
右側の「Master Value(php.ini)」の設定は 64MBであるものの、左側の「Local Value(ECCUBE)」の設定は 5MBになっていることが分かります。
これを「Master Value(php.ini)」と同じ 64MBに合わせることで解決します。
ここでは、php.iniの設定が 64MBですのでそれに合わせていますが、いくつに設定しても問題ありません。.htaccessで設定した値は、php.iniで設定した値より優先して反映されますので、php.iniの値にこだわる必要は全くなく、それ以上の数値でも全く問題ありません。
具体的に設定する値は、ECCUBE内の 「/html/.htaccess」にあります。
下記のような記述になっていますので「5M」の部分を「64MB」などに修正するといいでしょう。
1 2 |
# デフォルトテンプレートの状態で 2M 近くになるため php_value upload_max_filesize 5M |
修正して保存すればOKです。先ほどの「システム設定」-「システム情報」で表示される phpinfo()の情報ページをリロードすると設定情報が反映されていることが分かると思います。
続けて、「※ テンプレートファイルのファイルサイズは10MB以下のものを使用してください。」のエラーが出る場合は、「ECCUBEでテンプレートファイルのファイルサイズは10MB以下のものを使用してくださいのエラーが出た場合」に続きの記事を書きましたので参考にしてください。
php.iniの設定を行う
一般的にファイルのアップロードファイルサイズの制限を拡張させる場合は、php.iniの設定を行います。
ECCUBEでは、上記で説明したように .htaccessで設定を行います。
.htaccessで設定した情報は、php.iniで設定した情報より優先して反映されますので、ここで説明する php.iniの設定をしても反映されませんが、一般的にはこういう設定を行います、という説明をしておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit = 128M ; Maximum size of POST data that PHP will accept. ; Its value may be 0 to disable the limit. It is ignored if POST data reading ; is disabled through enable_post_data_reading. ; http://php.net/post-max-size post_max_size = 64M <pre class="lang:php"> ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 10M |
サーバにおいてある php.iniファイルを探して、上記の「memory_limit」「post_max_size」「upload_max_filesize」の場所を検索して設定を確認します。
それぞれの項目は下記のような意味になります。
memory_limit
PHPで利用できるメモリ使用量の上限を設定します。
post_max_size
一度に POSTできる最大のサイズを設定します。
ここでは複数のファイルを送信する場合などは全部まとめて 1回での POSTの最大値を設定します。
upload_max_filesize
1ファイル当たりの最大ファイルサイズを設定します。
また、php.iniのおいてある場所はサーバの設定によって違いますので、分からない場合はサーバ会社などにご確認ください。
また、レンタルサーバの場合は、管理画面(コントロールパネル)から更新できるようになっているサーバもあります。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
Smartyの修飾子regex_replaceで正規表現の後方参照・PHPではpreg_replace
ECCUBEで使われているSmartyで文字列を正規表現で置換し後方参照で値を利用する装飾子regex_replaceの解説です。細かな条件がありますので注意が必要です。
-
-
PHPで APIにアクセスする際などに使用する cURLのサンプルプログラム
PHPのcURLを使用して各種APIにアクセスするサンプルプログラムを作成し、その処理を解説。カオナビAPIのみならず、他の多くのAPIにアクセスする際にも使用できる。
-
-
ECCUBEでカード決済NGの受注情報をマイページ購入履歴に表示しない方法解説
ECCUBEでカード決済に失敗しても購入履歴一覧に注文情報(受注情報)が表示される問題への対処方法を解説。受注情報レコードの作成の流れとステイタスについても解説。
-
-
ob_start、ob_get_contents関数でPHPの標準出力をバッファリング・変数に代入
標準出力をバッファリングし変数に代入することができるob_start()関数の解説。include()の処理をバッファリングすることで自由な場所に処理を記述することが可能。
-
-
Basic認証の.htaccess、.htpasswd生成ツールと解説
Basic認証を設定する際に必要となる.htaccess、.htpasswdファイルを生成するツール。ID、PASS、.htpasswdへのパスを入力することで編集する情報を生成します。
-
-
PHPのソースで見慣れない記号が出てきた・アロー演算子(->)、ダブルアロー演算子(=>)
PHPのプログラムソースには見慣れない記号が出てきます。その意味や調べ方です。
-
-
配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例
配列の値を「、」でつないで出力する際、単純にforeachで繰り返し処理をすると「イヌ、サル、キジ、」となるが文字列最後の「、」を出力しない方法を3つ解説している。
-
-
ECCUBEの管理画面のSSL設定をインストール後に変更する方法
ECCUBEをインストールした後から管理画面のSSL設定を変更する方法を解説します。config.phpファイルのHTTPS_URLとADMIN_FORCE_SSLの値を変更すればOK。
-
-
連想配列のキーも値もまとめてhtmlspecialchars()でサニタイズする関数の作成解説
PHPの配列・連想配列のキーと値をまとめてhtmlspecialchars()関数でサニタイズ(無害化、無毒化)を行う関数を作成。連想配列のキーはarray_map()関数でのサニタイズは無理。
-
-
リダイレクトループが原因で「ERR_TOO_MANY_REDIRECTS」「このページを表示できません」が出たときの対策12事例+α
リダイレクトループ、自動転送設定ループの原因の解説とその対応方法を含め事例 12例を挙げて説明。