Bagaimanakah Saya Boleh Mengakses Data POST Berbilang Bahagian/Borang-Data Mentah dalam PHP?

DDD
Lepaskan: 2024-11-25 01:38:14
asal
536 orang telah melayarinya

How Can I Access Raw Multipart/Form-Data POST Data in PHP?

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> 
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan