Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memuat naik fail dalam PHP? Anda akan faham selepas membacanya!

Bagaimana untuk memuat naik fail dalam PHP? Anda akan faham selepas membacanya!

WBOY
WBOYasal
2021-10-19 13:48:503387semak imbas

Dalam artikel sebelumnya, saya membawakan anda "Bagaimana untuk mendapatkan dan mengesan atribut fail dalam PHP? (Perkongsian Ringkasan) ", yang memberi anda pengenalan terperinci kepada pengetahuan tentang atribut fail dalam PHP. Dalam artikel ini, mari kita lihat cara kita harus memuat naik fail dalam PHP. Semoga ia membantu semua orang!

Bagaimana untuk memuat naik fail dalam PHP? Anda akan faham selepas membacanya!

Dalam kehidupan seharian kita, kita sering menghadapi langkah-langkah memuat naik fail seperti memuat naik gambar dalam kalangan rakan, menghantar fail yang dilampirkan ke e-mel, dll. Dalam kod PHP kita , apakah yang perlu saya lakukan jika saya ingin memuat naik fail? Muat naik fail adalah salah satu fungsi yang sangat penting dalam sistem fail PHP, jadi mari kita lihat bagaimana untuk melaksanakan fungsi tersebut.

Konfigurasiphp.ini

Untuk menggunakan fungsi muat naik fail, mula-mula kita perlu mengkonfigurasi php.ini, di mana Set parameter dengan sewajarnya. Mari kita lihat dahulu cara mencari fail php.ini. Contohnya adalah seperti berikut:

Mula-mula kita masukkan:

<?php
phpinfo();
?>

Hasil keluaran:

Bagaimana untuk memuat naik fail dalam PHP? Anda akan faham selepas membacanya!

Daripada keputusan di atas, anda boleh melihat laluan khusus php.ini dalam lajur Fail Konfigurasi Dimuatkan. Ini membawa kepada fail php.ini ditemui.

Terdapat terlalu banyak fail dalam php.ini Anda boleh menggunakan ctrl F untuk mencari item konfigurasi yang berkaitan. Kemudian parameter yang perlu kami konfigurasikan adalah seperti berikut:

  • file_uploads: on bermakna pelayan telah mendayakan fungsi muat naik fail jika ia dimatikan, ia bermakna pelayan telah mematikan fungsi muat naik fail.

  • upload_tmp_dir: Direktori sementara untuk fail yang dimuat naik. Sebelum fail berjaya dimuat naik, fail tersebut akan disimpan terlebih dahulu dalam direktori sementara pada bahagian pelayan Jika tidak ditetapkan, ia akan menjadi direktori lalai sistem.

  • upload_max_filesize: Saiz maksimum fail yang dibenarkan untuk dimuat naik oleh pelayan, dalam MB.

  • max_execution_time: Masa maksimum arahan boleh dilaksanakan dalam PHP, dalam saat.

  • memory_limit: Ruang memori yang diperuntukkan oleh arahan dalam PHP, dalam MB.

Apa yang perlu kita perhatikan ialah: selepas konfigurasi selesai, jika anda mahu konfigurasi berkuat kuasa, anda perlu memulakan semula pelayan Apache untuk parameter yang dikonfigurasikan berkuat kuasa .

Pembolehubah dipratentukan $_FILES

Selepas kita mengkonfigurasi php.ini, kita perlu menggunakan pembolehubah yang dipratentukan $_FILES untuk memuat naik Dokumen membuat beberapa sekatan dan penghakiman. Pembolehubah $_FILES menyimpan maklumat yang berkaitan dengan fail yang dimuat naik Maklumat yang perlu disimpan adalah seperti berikut:

  • $_FILES[filename][name]: Simpan nama fail fail yang dimuat naik

  • $_FILES[filename][size] : Simpan saiz fail yang dimuat naik

  • $_FILES[filename][tmp_name] : Simpan nama sementara fail yang dimuat naik

  • $_FILES[filename][type] : Simpan jenis fail yang dimuat naik

  • $_FILES[filename][error] : Simpan nama kod hasil fail yang dimuat naik, 0 bermakna kejayaan

Kita boleh lulus pembolehubah yang dipratentukan Contoh $_FILES digabungkan dengan HTML adalah seperti berikut:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>PHP文件上传</title>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
        <input type="file" name="upfile">
        <input type="submit" value="上传">
    </form>
</body>
</html>
<?php
    if(!empty($_FILES)){
        foreach ($_FILES[&#39;upfile&#39;] as $key => $value) {
            echo $key.&#39;=>&#39;.$value.&#39;<br>&#39;;
        }
    }
?>

Selepas menjalankan program, pilih fail untuk dimuat naik mengikut borang yang saya ambil test1.txt sebagai contoh. Hasil output ialah:

Bagaimana untuk memuat naik fail dalam PHP? Anda akan faham selepas membacanya!

Menurut maklumat yang disimpan, kami boleh mendapatkan maklumat berkaitan fail:

nama fail ialah test1.txt; jenis fail yang dimuat naik ialah teks/biasa;

Muat naik fail tunggal

Melalui kod di atas, kami telah mendapat maklumat asas fail yang akan dimuat naik Seterusnya kami perlu gunakan move_uploaded_file() Fungsi untuk melaksanakan muat naik. Fungsi utamanya adalah untuk memindahkan fail yang baru dimuat naik ke lokasi baharu. Format sintaksnya adalah seperti berikut:

move_uploaded_file(string $filename, string $destination)

di mana $filenameb mewakili nama fail bagi fail yang dimuat naik Nama fail ini bukan nama fail asal bagi fail yang dimuat naik, tetapi diperoleh melalui tmp_name dalam $ _FILES dalam langkah sebelumnya Nama fail; $destinationb menunjukkan lokasi di mana fail yang dimuat naik akan dialihkan.

Fungsi pelaksanaan akan mengembalikan BENAR jika ia dilaksanakan dengan jayanya, dan SALAH jika gagal.

Seterusnya mari kita lihat contoh:

Muat naik fail test1.txt tadi ke folder bernama phptest yang saya buat dalam direktori root Operasinya adalah seperti berikut:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>PHP文件上传</title>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
        <input type="file" name="upfile">
        <input type="submit" value="上传">
    </form>
</body>
</html>
<?php
    if(!empty($_FILES)){
        $tmpname   = $_FILES[&#39;upfile&#39;][&#39;tmp_name&#39;];     // 临时文件名称
        $name      = $_FILES[&#39;upfile&#39;][&#39;name&#39;];         // 文件的原名称
        $path      = &#39;./phptest&#39;;                       // 上传目录
        $file_name = date(&#39;YmdHis&#39;).rand(100,999).$name;// 避免文件重名,更改文件名称
        if(move_uploaded_file($tmpname, $path.&#39;/&#39;.$file_name)){
            echo $name." 上传成功!";
        }else{
            echo $name." 上传失败!";
        }
    }
?>

Selepas memuat naik fail mengikut borang, hasil output adalah seperti berikut:

Bagaimana untuk memuat naik fail dalam PHP? Anda akan faham selepas membacanya!

如此则表示我想要上传的test2.txt已经上传到我需要的目录中了:

Bagaimana untuk memuat naik fail dalam PHP? Anda akan faham selepas membacanya!

多文件上传

通过上述示例已经了解了单文件上传的过程,但是在日常使用中经常会用到的是多文件上传,那多文件上传应该怎么操作呢?

示例如下:

还和上面的示例一样,上传多个文件到我在根目录里创建的phptest文件夹里

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>PHP文件上传</title>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
        <input type="file" name="upfile[]"><br>
        <input type="file" name="upfile[]"><br>
        <input type="file" name="upfile[]"><br>
        <input type="submit" value="上传">
    </form>
</body>
</html>
<?php
    if(!empty($_FILES)){
        $tmpname = $_FILES[&#39;upfile&#39;][&#39;tmp_name&#39;];
        $name = $_FILES[&#39;upfile&#39;][&#39;name&#39;];
        $path = &#39;./phptest&#39;;
        for ($i=0; $i < count($tmpname); $i++) {
            $file_name = date(&#39;YmdHis&#39;).rand(100,999).$name[$i];
            if(move_uploaded_file($tmpname[$i], $path.&#39;/&#39;.$file_name)){
                echo $name[$i].&#39; 上传成功!<br>&#39;;
            }else{
                echo $name[$i].&#39; 上传失败!<br>&#39;;
            }
        }
    }
?>

输出结果:

Bagaimana untuk memuat naik fail dalam PHP? Anda akan faham selepas membacanya!

如此结果显示,多个文件已经上传到我的文件夹里了:

Bagaimana untuk memuat naik fail dalam PHP? Anda akan faham selepas membacanya!

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci Bagaimana untuk memuat naik fail dalam PHP? Anda akan faham selepas membacanya!. 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