Bagaimana untuk menentukan dengan pasti sama ada fail telah dimuat naik dalam PHP?

DDD
Lepaskan: 2024-11-01 06:19:31
asal
823 orang telah melayarinya

How to Reliably Determine if a File Was Uploaded in PHP?

Menilai Muat Naik Fail Pengguna dalam PHP

Apabila mengesahkan input pengguna, memastikan integriti muat naik fail adalah penting. Walau bagaimanapun, sesetengah borang mungkin membenarkan muat naik pilihan. Dalam kes sedemikian, melangkau pengesahan untuk pengguna yang belum menyerahkan fail adalah penting.

Menentukan Kehadiran Muat Naik Fail

Untuk menyemak sama ada fail telah dimuat naik, menggunakan $_FILES ['myfile']['size'] <= 0 tidak boleh dipercayai. Sebaliknya, fungsi is_uploaded_file() menawarkan penunjuk yang lebih tepat.

Menggunakan is_uploaded_file()

<code class="php">if(!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) {
    echo 'No upload';
}
Salin selepas log masuk

Seperti yang dijelaskan oleh dokumentasi rasmi, fungsi ini:

  • Memastikan bahawa fail telah dimuat naik melalui kaedah HTTP POST.
  • Melindungi daripada percubaan berniat jahat untuk mengakses fail yang tidak diingini.

Sampel Pelaksanaan

Pertimbangkan contoh ini daripada kelas FileUpload:

public function fileUploaded()
{
    if(empty($_FILES)) {
        return false;       
    } 
    $this->file = $_FILES[$this->formField];
    if(!file_exists($this->file['tmp_name']) || !is_uploaded_file($this->file['tmp_name'])){
        $this->errors['FileNotExists'] = true;
        return false;
    }   
    return true;
}

Kaedah ini mula-mula menyemak sama ada tatasusunan $_FILES kosong. Jika tidak, ia mendapatkan semula fail yang dimuat naik dan mengesahkan kewujudannya menggunakan file_exists(). Akhir sekali, is_uploaded_file() mengesahkan sama ada fail itu sebenarnya telah dimuat naik.

Atas ialah kandungan terperinci Bagaimana untuk menentukan dengan pasti sama ada fail telah dimuat naik 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!