Tôi từng gặp lỗi liên quan đến thiết lập max_size trên php như sau:
- Khi tôi up 1 file lớn hơn 30MB thì nó không báo lỗi gì cả và refresh lại trang nhưng không lưu vào database
- Sau đó tôi up 1 file tầm 26MB thì nó lại báo lỗi "Do bạn up file lớn hơn quy định …. gì gì đó"
- Nhưng tôi up 1 file dưới 18MB thì OK
=> Lúc đầu không hiểu 26MB và 30MB thì liên quan gì nhau?
Sau đó tôi tìm hiểu ra vấn đề là do thiết lập giới hạn max_size trên php.ini như sau:
upload_max_filesize = 20M
post_max_size = 30M
Do trên code đã check nếu upload file lớn hơn thiết lập upload_max_filesize trên php.ini thì báo lỗi, nhưng khi $_POST vượt quá thiết lập post_max_size trên php.ini thì lúc này count($_POST) lại bằng 0
Cách giải quyết:
Cách 1: Có thể thiết lập lại php.ini trên server cho 2 thông số này bằng nhau
Cách 2: Nếu count($_POST) = 0 thì thông báo ABC gì đó