Rumah >pembangunan bahagian belakang >masalah PHP >Apakah yang perlu saya lakukan jika php tidak dapat menerima formdata?

Apakah yang perlu saya lakukan jika php tidak dapat menerima formdata?

PHPz
PHPzasal
2023-04-04 16:13:071218semak imbas

PHP ialah bahasa skrip yang digunakan secara meluas yang biasa digunakan untuk pengaturcaraan sebelah pelayan. Pemprosesan data borang yang dihantar oleh pengguna boleh dilaksanakan dengan mudah menggunakan PHP. Walau bagaimanapun, kadangkala kami menghadapi masalah sedemikian: data yang diserahkan dalam borang menggunakan format FormData tidak boleh diterima dalam kod PHP. Jadi, bagaimana untuk menyelesaikan masalah ini?

Pertama sekali, kita perlu memahami kaedah penyerahan borang dalam format FormData. FormData ialah API baharu untuk membina data borang, yang boleh mengendalikan borang yang mengandungi jenis data kompleks seperti teks, fail, data binari, dsb. Apabila menggunakan FormData untuk menyerahkan data borang, anda mesti menggunakan kaedah POST.

Sebagai contoh, kita boleh menggunakan kod berikut untuk mencipta objek FormData yang mengandungi teks dan fail:

var formData = new FormData();
formData.append('name', 'Bob');
formData.append('file', fileInput.files[0]);

Di mana 'nama' ialah nama item borang dan 'Bob' ialah Nilainya; 'fail' ialah nama kawalan muat naik fail, fileInput.files[0] ialah data fail. Anda boleh menggunakan objek XMLHttpRequest untuk menghantar objek FormData ke pelayan sebelum borang diserahkan.

Dalam PHP, biasanya tiada masalah menggunakan tatasusunan $_POST untuk menerima data yang diserahkan melalui borang. Walau bagaimanapun, jika borang menggunakan format FormData untuk menyerahkan data, anda perlu menggunakan tatasusunan $_FILES untuk menerima data. Tatasusunan $_FILES mengandungi maklumat tentang fail yang dimuat naik.

Sebagai contoh, kita boleh menggunakan kod berikut untuk menerima data yang diserahkan oleh FormData dalam PHP:

$name = $_POST['name'];
$file = $_FILES['file'];

Di mana, $name ialah nilai item borang 'nama'; fail ialah nilai maklumat fail yang dimuat naik.

Jika terdapat masalah tidak menerima FormData, anda boleh mencuba penyelesaian berikut:

  1. Semak pengepala permintaan: Gunakan alatan seperti Fiddler atau Chrome Devtools untuk menyemak pengepala permintaan diserahkan oleh borang untuk memastikan Jenis Kandungan ditetapkan kepada 'berbilang bahagian/data-bentuk'.
  2. Konfigurasi PHP: Semak fail konfigurasi PHP untuk memastikan item konfigurasi seperti file_uploads dan post_max_size ditetapkan dengan betul.
  3. Had saiz fail muat naik: Semak sama ada saiz fail muat naik melebihi saiz had yang ditetapkan dalam fail konfigurasi PHP.
  4. Laluan muat naik fail: Semak sama ada laluan menyimpan fail yang dimuat naik ditetapkan dengan betul.

Ringkasan:

Untuk menerima data yang diserahkan oleh FormData dalam PHP, anda perlu menggunakan tatasusunan $_FILES dan bukannya tatasusunan $_POST. Jika terdapat masalah untuk tidak menerima FormData, anda perlu menyemak pengepala permintaan borang, konfigurasi PHP, had saiz fail muat naik, laluan muat naik fail dan tetapan lain.

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika php tidak dapat menerima formdata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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