Mengakses Data POST Berbilang Bahagian/Borang-Data Mentah
Dalam PHP, gelagat lalai untuk permintaan POST berbilang bahagian/form-data adalah untuk data input untuk dihuraikan secara automatik oleh PHP. Ini menimbulkan masalah jika anda memerlukan akses kepada data mentah yang tidak dihuraikan.
Walaupun kedua-dua php://input dan $HTTP_RAW_POST_DATA boleh digunakan untuk mengakses data POST mentah, kedua-duanya tidak berfungsi untuk permintaan data berbilang/bentuk.
Penyelesaian
Malangnya, memperoleh data mentah untuk borang berbilang bahagian/data bentuk tidak boleh dilakukan melalui kaedah PHP konvensional. PHP berkeras untuk menghuraikan data itu sendiri, menjadikannya tidak tersedia untuk penghuraian manual.
Walau bagaimanapun, terdapat penyelesaian yang melibatkan pengubahsuaian konfigurasi Apache. Dengan menambahkan coretan berikut pada fail conf apache anda, anda boleh menukar Jenis Kandungan permintaan masuk:
<Location "/backend/XXX.php"> SetEnvIf Content-Type ^(multipart/form-data)(.*) NEW_CONTENT_TYPE=multipart/form-data-alternate OLD_CONTENT_TYPE= RequestHeader set Content-Type %{NEW_CONTENT_TYPE}e env=NEW_CONTENT_TYPE </Location>
Ini akan memaksa PHP untuk menganggap permintaan multipart/form-data sebagai multipart/form-data -selang-seli, menghalang penghuraian automatik. Dengan penyelesaian ini, anda boleh mengakses data mentah dengan membaca daripada php://input dan menghuraikannya secara manual.
Penghadan
Sementara penyelesaian ini membolehkan anda mengakses data mentah, ia juga mempunyai had. Khususnya, superglobal $_FILES akan kosong, kerana PHP tidak akan menghuraikan data borang.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Data POST Berbilang Bahagian/Borang-Data Mentah dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!