我正在爲我的php應用程序(使用CodeIgniter)實現ajax文件上傳。PHP警告拆除JSON響應
我根據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響應中?
無論如何,您應該在生產環境中關閉錯誤... – lonesomeday
@lonesomeday我同意,但指定的行爲「向用戶提供反饋,如果他嘗試上傳過大的文件」應該與生產中的相同開發/測試環境。我不是「是的,但在生產模式下它的作品!」的粉絲! ;) –
第0行的錯誤通常是啓動錯誤,在您的.htaccess中添加'php_flag display_startup_errors off'應該禁用它......將其添加到我的答案中。 – xception