Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah `post_max_size` dan `upload_max_filesize` Berfungsi Bersama untuk Muat Naik Fail?

Bagaimanakah `post_max_size` dan `upload_max_filesize` Berfungsi Bersama untuk Muat Naik Fail?

Linda Hamilton
Lepaskan: 2024-10-31 00:01:02
asal
447 orang telah melayarinya

 How Do PHP's `post_max_size` and `upload_max_filesize` Work Together for File Uploads?

Memahami Had Saiz Muat Naik Fail PHP

Tetapan konfigurasi PHP post_max_size dan upload_max_filesize memainkan peranan penting dalam mengendalikan muat naik fail. Walau bagaimanapun, interaksi mereka boleh mengelirukan.

Kekeliruan

Dalam contoh yang diberikan, post_max_size ditetapkan kepada 8Mb, manakala upload_max_filesize ditetapkan kepada 16Mb. Secara logiknya, seseorang mungkin menganggap bahawa fail sehingga 16Mb boleh dimuat naik. Walau bagaimanapun, had post_max_size yang lebih kecil mengatasi andaian ini, mengakibatkan ralat semasa cuba memuat naik fail yang lebih besar daripada 8Mb.

Definisi Had

  • upload_max_filesize : Menentukan saiz maksimum satu fail yang dimuat naik.
  • post_max_size: Menentukan saiz maksimum keseluruhan isi permintaan HTTP POST, yang merangkumi semua data yang diserahkan, termasuk fail.

Interaksi Had

post_max_size bertindak sebagai jumlah had pada gabungan saiz semua fail dan data lain yang diserahkan melalui POST. Ini bermakna walaupun upload_max_filesize membenarkan fail yang lebih besar, saiz permintaan keseluruhan mesti mematuhi post_max_size.

Penyelesaian untuk Muat Naik Fail Besar

Untuk membenarkan muat naik fail lebih besar daripada post_max_size, seseorang perlu mencari cara alternatif untuk menghantar fail tanpa menggunakan POST. Ini mungkin melibatkan:

  • Berbilang bahagian/data-bentuk: Menggunakan skrip tersuai yang mengendalikan muat naik fail secara bebas daripada had saiz permintaan HTTP.
  • Kaedah HTTP PUT/PATCH: Menggunakan kaedah ini untuk memuat naik fail besar melalui REST API.

Pengesanan Ralat

Apabila post_max_size melebihi, $ _POST dan $_FILES akan kosong. Walau bagaimanapun, $_SERVER['CONTENT_LENGTH'] akan lebih besar daripada 0. Adalah penting untuk ambil perhatian bahawa jika tiada pembolehubah siaran atau fail dihantar, $_SERVER['CONTENT_LENGTH'] akan menjadi 0.

Atas ialah kandungan terperinci Bagaimanakah `post_max_size` dan `upload_max_filesize` Berfungsi Bersama untuk Muat Naik Fail?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan