web-dev-qa-db-ja.com

Php.iniの最大アップロードサイズの変更は無視されます - アップロードサイズ制限を削除するにはどうすればいいですか?

私はマルチサイトWPインストールに取り組んでいて、他のWordpressサイト(.wxrファイル)からコンテンツをインポートする必要があります。 Import WordPress プラグインを使用すると、次のようになります。

enter image description here

私の1MB100MBを設定している間、アップロードの最大許容サイズはphp.iniのみです。 phpinfo()を呼び出すと、.iniの値 should が適用されます。

enter image description here

何が問題なのですか? このサイトではupload_max_filesize の検索結果のほとんどを読み終えましたが、何も機能しません。

注: これはWordpressでのみ起こります。私はSymfony2サイトを持っていて、100MB以上のサイズのファイルをアップロードすることができます - そうです、それは正しいphp.ini設定であり、Apacheサーバーはそれらを正しく適用します。

MU Wordpressプラグインを書く

@ kaiser提案の後、私は/wp-content/mu-plugins/uploadSizeLimit.phpファイルを作成し、そしてそれにそれを書きました:

/** Plugin Name: (WPSE) #177620 Alter Upload Size Limit */
add_filter(
    'upload_size_limit',
    function ( $limit = 0, $u_bytes = 0, $p_bytes = 0 ) {
        return 
               current_user_can( 'manage_options' ) 
               ? 1024 * 1024 * 10 // Divert by 1024 to get the value in kB
               : $limit;
    }
);

必要なものを実現するためにこれをどのように使用しますか?

2
ReynierPM

ありがとう@ kaiserしかしあなたの解決策を通す必要はありません私は簡単なものを見つけました。

WP Networkサイトで作業している場合、手順は次のとおりです。

  1. 上部にある[個人用サイト]にカーソルを合わせ、[ネットワーク管理]をクリックします。
  2. 左側にある[設定]にカーソルを合わせ、[ネットワーク設定]をクリックします。
  3. ページの一番下までスクロールして、[最大アップロードファイルサイズ]をKB単位のサイズに変更します。
  4. 変更を保存をクリックします。

その値を500000に設定することで、max_file_sizeアップロードとして500Mを取得しました。クレジットはユーザー用です ここ

5
ReynierPM

'upload_size_limit'という名前のフィルタがあります。ここでが値を変更できるようにします。その仕事のために小さなmuプラグインを追加するだけです。

<?php
/** Plugin Name: (WPSE) #177620 Alter Upload Size Limit */
add_filter( 'upload_size_limit', function( $limit = 0, $u_bytes = 0, $p_bytes = 0 )
{
    return (
        in_array( get_current_screen()->base, array( /* Add Screen "base"s here */ )
        and current_user_can( 'manage_options' )
    )
        ? 1024 * 1024 * 10 // Divert by 1024 to get the value in kB
        : $limit;
} );

ご覧のとおり、baseという名前のget_current_screen()sプロパティも確認しています。さまざまなプロパティをチェックすることもできますが、デフォルトの制限の削除/変更が本当に必要な画面に適用される場合は、画面を狭くするようにしてください。

1
kaiser