web-dev-qa-db-ja.com

最大アップロードファイルサイズを減らす方法

私のウェブサイトには投稿を公開できる作者がたくさんいますが、そのうちの何人かは1Mより大きい画像をアップロードしています、そして私は最大アップロードサイズを500 kbに減らしたいです。

4
AboSami

wp_handle_upload()関数 で使用されているwp_handle_upload_prefilterフックでは、特定のサイズ(または他の理由で)のアップロードを禁止できます。

それは渡されたファイル配列を取得します、それは PHP標準スーパーグローバル$_FILES の中の一つの項目です: PHP Manual:POST method uploads

関数を作成してそれをフィルタに追加するだけです。あなたのフックの中で、filesizeをチェックし、$file['error']をあなたのエラーメッセージに設定してください。

add_filter('wp_handle_upload_prefilter', function($file) {
    $size = $file['size'];
    if ($size > 500 * 1024) {
       $file['error'] = '"Files larger than X bytes are prevented from uploads.';
    }
    return $file;
});

この方法では技術的にアップロードが許可されません。つまり、サーバーはまだユーザーのブラウザからファイルのアップロードデータを受信して​​います。それは後で捨てられるだけです。

サーバーレベルで特定のサイズのアップロードが行われないようにするには、使用する内容に応じてサーバーを適切に設定する必要があります。

6
hakre