post_max_sizeを超えたファイルをアップロードすると、
「Warning: POST Content-Length of …」というエラーが出てPOSTする内容が消えてしまいますよね。
どうやってエラー処理をしようか悩んでいたら、
以下の参考記事を発見。
参考
PDFファイルをサーバーにアップし、 そのPDFファイルをダウンロードする際、 ブラウザにPDFファイルが開くことなく、 ダイアログが出るように設定するようにしたいと考えて.. – 人力検索はてな
PHPを使ったファイルアップロードで php.ini の制限越えた場合にはどのように処理されるのでしょうか? 越えると単に $_POST を array() に設定して、データおくらないで.. – 人力検索はてな
対策
post_max_sizeに失敗した場合には$_POSTがarray()で返り、$_SERVER[“REQUEST_METHOD”]が”POST”で返ることを利用して、
if (empty($_POST) && $_SERVER["REQUEST_METHOD"] === "POST") { // エラー処理 }
で対応しました。
※upload_max_filesizeの制限に引っかかった場合は挙動が違うらしいので注意してください。
詳しくはこちら