PHP アプリケーションに ajax ファイルアップロードを実装しています (CodeIgniter を使用)。
http://andrewcurioso.com/2010/06/detecting-file-size-overflow-in-php/に従って、アップロードされた POST データが大きすぎる (>post_max_size) かどうかを検出し、適切な JSON エンコード エラーを送信しようとします。応答。
しかし、出力に含まれる対応する php 警告により、JSON 応答が完全に破棄されます。
<br />
<b>Warning</b>: POST Content-Length of 105906405 bytes exceeds the limit of 8388608 bytes in <b>Unknown</b> on line <b>0</b><br />
[{"error":"Posted data is too large. 105906405 bytes exceeds the maximum size of 8388608 bytes."}]
クライアント側で警告を解析してフィルター処理したくありません。それは醜いようです。また、すべての php 警告をグローバルに無効にすることは不適切に思えます。
PHP 関数のコンテキストで特定の PHP 警告を無効にすることはできますか? または、有効な json 応答内にラップしますか?