PHP/Apache/AJAX: Menavigasi Had Saiz POST
Pertanyaan anda menyerlahkan isu dengan menghantar data POST yang besar melalui AJAX. Walaupun konfigurasi PHP anda nampaknya mencukupi, anda telah menghadapi masalah yang sukar difahami. Untuk menyelesaikan masalah ini, mari kita mendalami punca yang berpotensi.
Had Apache:
-
LimitRequestBody: Arahan ini mengawal saiz maksimum badan permintaan HTTP. Sahkan nilainya dalam log ralat untuk memastikan ia melebihi 2 juta aksara.
Had PHP:
-
post_max_size: Parameter ini secara langsung mengehadkan saiz data POST. Semak semula nilai ini dan pertimbangkan untuk meningkatkannya.
-
max_input_time: Jika memproses permintaan POST mengambil masa yang berlebihan, tetapan ini boleh menyebabkan masalah. Tetapkannya kepada -1 untuk melumpuhkan had masa.
-
max_input_nesting_level: Tetapan ini mengehadkan kedalaman struktur data bersarang dalam permintaan POST.
-
memory_limit: Memandangkan data POST yang besar boleh menggunakan memori, pastikan had ini mencukupi untuk mengendalikan saiz data anda.
Pertimbangan Tambahan:
-
Masa Pelaksanaan Maks: Walaupun tidak mungkin menjadi punca, sahkan bahawa tetapan ini membenarkan masa yang mencukupi untuk pemprosesan data.
-
Var Input Maks: Jika data POST anda mengandungi data yang besar bilangan elemen, nilai ini mungkin perlu ditingkatkan.
Strategi Mitigasi:
Jika Apache's LimitRequestBody sememangnya faktor pengehad, mungkin perlu untuk pecahkan data anda kepada bahagian yang lebih kecil untuk penghantaran. Ini boleh dicapai melalui skrip tersuai atau menggunakan teknik seperti filechunking.
Atas ialah kandungan terperinci Data POST Besar dengan AJAX: Mengapa Persediaan PHP/Apache Saya Mencecah Had?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!