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
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
指定した数で文字列を丸める(n文字目で…にする)関数substr、mb_substr、mb_strimwidthの違い
文字列を指定された数で抜き出すPHPの関数、substr、mb_substr、mb_strimwidthについての解説。似た関数だが引数の指定方法が違ったり、文字数がバイト数か文字数かも違ったり、注意が必要だ。
-
-
PHPで正規表現の検証には preg_match_allが便利
PHPで正規表現の検証には preg_match_allが便利です。その便利さの使い方の解説です。
-
-
PHPでスクレイピング。phpQueryとphp-simple-html-dom-parserの比較と設置方法
「PHP スクレイピング」で検索すると「phpQuery」ばかりヒットするが、10年以上も放置されている。なので今も開発が続いている「PHP Simple HTML DOM Parser」をオススメする。
-
-
PHPパーミッション変更のchmod関数・モードを変数で指定する方法
パーミッション変更関数であるchmod関数の第二引数、ファイルモードの指定に変数を使う場合は8進数に変換するoctdec関数を使って変換します。
-
-
カオナビAPI Ver.2.0のtokenを取得する PHP+cURLのサンプルプログラム
PHPのcURLを使用してカオナビAPIのアクセスに必要なtoken、シートの情報を取得するサンプルプログラムを作成。cURLの処理は関数化しているため他のAPIでも流用できる。
-
-
Phpmailerでスパム回避!Gmail等のSMTPを経由するPHPのメールフォーム解説
お問い合わせ等のメールフォームから送ったメールがスパム扱いされる!その対策としてライブラリ「Phpmailer」を使う方法を解説。関数化していますのでコピペでOK。
-
-
ECCUBE mtb_constants initパラメータ設定の項目を追加する方法
ECCUBEのパラメータ設定で設定できる項目を追加する方法を説明します。
-
-
パーミッション(属性)一括変更ツール・WordPress最適化済
WordPressのパーミッション(属性)を一括変更するツールを作成!ファイル、フォルダのパーミッションが一覧表示でき、ファイルを選んでパーミッションの変更が行えます。
-
-
配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例
配列の値を「、」でつないで出力する際、単純にforeachで繰り返し処理をすると「イヌ、サル、キジ、」となるが文字列最後の「、」を出力しない方法を3つ解説している。
-
-
JSON形式の値を配列形式に変換・PHPでは json_decode()、json_encode()
JSONとは「JavaScript Object Notation」の略でテキストベースのデータフォーマット。JSONの値をPHPで配列に変換するWebツールの紹介とその処理「json_encode()」「json_decode()」関数の解説。