Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk mengendalikan muat naik fail dalam PHP?

Bagaimana untuk mengendalikan muat naik fail dalam PHP?

May 11, 2023 pm 10:31 PM
php muat naik fail Pemprosesan fail pemprosesan borang

Dengan perkembangan teknologi Internet yang berterusan, fungsi muat naik fail telah menjadi bahagian penting dalam banyak tapak web. Dalam bahasa PHP, kami boleh mengendalikan muat naik fail melalui beberapa perpustakaan dan fungsi kelas. Artikel ini akan menumpukan pada kaedah pemprosesan muat naik fail dalam PHP.

1. Tetapan borang

Dalam borang HTML, kita perlu menetapkan atribut enctype kepada "multipart/form-data" untuk menyokong muat naik fail. Kodnya adalah seperti berikut:

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file"/>
    <input type="submit" value="上传"/>
</form>
Salin selepas log masuk

Antaranya, atribut jenis tag input ialah "fail" dan atribut nama ialah "fail", yang digunakan untuk menentukan nama fail yang dimuat naik.

2. Pemprosesan muat naik fail PHP

Dalam PHP, kami boleh menggunakan pembolehubah global $_FILES untuk memproses muat naik fail. Dengan mengandaikan bahawa fail yang dimuat naik dalam borang kami dinamakan "fail", maka dalam PHP, anda boleh mendapatkan maklumat fail yang dimuat naik melalui $_FILES['fail'].

tatasusunan $_FILES mengandungi lima elemen:

  1. nama: nama fail yang dimuat naik.
  2. jenis: Jenis fail yang dimuat naik.
  3. tmp_name: Laluan storan sementara bagi fail yang dimuat naik.
  4. ralat: kod ralat semasa memuat naik fail.
  5. saiz: Saiz fail yang dimuat naik (dalam bait).

Seterusnya kita boleh menggunakan fungsi move_uploaded_file() untuk mengalihkan fail yang dimuat naik ke folder yang ditentukan. Kodnya adalah seperti berikut:

$target_dir = "uploads/";   //上传文件的目标文件夹
$target_file = $target_dir . basename($_FILES["file"]["name"]);   //上传文件的完整路径
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
    echo "文件上传成功!";
} else {
    echo "文件上传失败!";
}
Salin selepas log masuk

Dalam kod di atas, pembolehubah $target_dir menentukan folder sasaran fail yang dimuat naik dan pembolehubah $target_file mengandungi laluan penuh fail yang dimuat naik. Kita boleh menggunakan fungsi move_uploaded_file() untuk memindahkan fail sementara ke direktori yang ditentukan. Mengembalikan benar jika langkah itu berjaya, palsu sebaliknya.

Apabila memuat naik fail, untuk memastikan keselamatan fail, kami perlu melakukan semakan dan penapisan tertentu pada fail yang dimuat naik. Sebagai contoh, kita boleh menggunakan fungsi is_uploaded_file() untuk menyemak sama ada fail yang dimuat naik benar-benar datang daripada klien. Kodnya adalah seperti berikut:

if(is_uploaded_file($_FILES['file']['tmp_name'])){
    //处理上传文件
}else{
    echo "非法的文件上传!";
}
Salin selepas log masuk

Kami juga boleh menggunakan fungsi getimagesize() untuk mendapatkan lebar dan ketinggian imej yang dimuat naik. Kodnya adalah seperti berikut:

if (is_uploaded_file($_FILES['file']['tmp_name'])) {
    $image_info = getimagesize($_FILES['file']['tmp_name']);
    echo "图片宽度:".$image_info[0]."<br/>";
    echo "图片高度:".$image_info[1]."<br/>";
    echo "图片类型:".$image_info[2]."<br/>";
} else {
    echo "非法的文件上传!";
}
Salin selepas log masuk

3. Hadkan saiz fail yang dimuat naik

Had lalai dalam PHP ialah 2M dalam saiz fail yang boleh dimuat naik, tetapi kami juga boleh mengubahnya dengan mengubah suai fail konfigurasi atau menetapkannya dalam had PHP. Sebagai contoh, dalam fail php.ini, kami boleh menetapkan upload_max_filesize dan post_max_size untuk mengehadkan saiz fail yang dimuat naik.

Jika kami ingin menetapkan saiz maksimum fail yang dimuat naik dalam PHP, kami boleh menggunakan fungsi ini_set() untuk mengubah suai tetapan dalam php.ini. Kodnya adalah seperti berikut:

//设置上传文件的最大值为10M
ini_set("upload_max_filesize","10M");
ini_set("post_max_size","10M");
Salin selepas log masuk

Kami juga boleh menggunakan $_SERVER['CONTENT_LENGTH'] untuk mendapatkan panjang kandungan dalam maklumat pengepala permintaan klien untuk menentukan sama ada fail yang dimuat naik melebihi saiz yang ditentukan. Kodnya adalah seperti berikut:

if($_SERVER['CONTENT_LENGTH'] > MAX_SIZE){
    echo "上传文件超过了指定大小!";
}
Salin selepas log masuk

Di bahagian hadapan, anda juga boleh menggunakan pemalam jQuery.uploadFile.js untuk mengehadkan saiz fail yang dimuat naik. Kodnya adalah seperti berikut:

<input type="file" name="file" id="file"/>
<script src="js/jquery-1.12.4.min.js"></script>
<script src="js/jquery.uploadfile.js"></script>
<script>
    $("#file").uploadFile({
        url: "upload.php",   //处理文件上传的PHP脚本
        maxFileSize: 1024*1024*5,   //最大上传文件的大小,此处为5M
    });
</script>
Salin selepas log masuk

4. Mengendalikan ralat muat naik fail

Semasa memuat naik fail, anda mungkin menghadapi beberapa ralat. Contohnya, fail yang dimuat naik terlalu besar, jenis fail yang dimuat naik tidak dibenarkan, folder sasaran tidak wujud, dsb. Kami perlu menangani ralat ini untuk meningkatkan pengalaman pengguna dan keberkesanan muat naik fail.

Sesetengah kod ralat ditakrifkan dalam PHP untuk memudahkan penghakiman dan pemprosesan ralat kami. Contohnya:

  1. UPLOAD_ERR_OK (0): Muat naik berjaya.
  2. UPLOAD_ERR_INI_SIZE (1): Fail yang dimuat naik melebihi konfigurasi dalam php.ini.
  3. UPLOAD_ERR_FORM_SIZE (2): Fail yang dimuat naik melebihi nilai yang ditentukan oleh MAX_FILE_SIZE dalam borang.
  4. UPLOAD_ERR_PARTIAL (3): Hanya sebahagian daripada fail yang dimuat naik telah dimuat naik.
  5. UPLOAD_ERR_NO_FILE (4): Tiada fail dimuat naik.
  6. UPLOAD_ERR_NO_TMP_DIR(6): Folder sementara tidak ditemui.
  7. UPLOAD_ERR_CANT_WRITE(7): Penulisan fail gagal.

Kami boleh menggunakan pernyataan suis untuk mengendalikan ralat ini. Kodnya adalah seperti berikut:

switch ($_FILES['file']['error']) {
    case UPLOAD_ERR_OK:
        //上传成功
        break;
    case UPLOAD_ERR_INI_SIZE:
        echo "上传的文件超过了php.ini中的配置。";
        break;
    case UPLOAD_ERR_FORM_SIZE:
        echo "上传的文件超过了表单中的MAX_FILE_SIZE指定的值。";
        break;
    case UPLOAD_ERR_PARTIAL:
        echo "上传的文件只有部分被上传。";
        break;
    case UPLOAD_ERR_NO_FILE:
        echo "没有文件被上传。";
        break;
    case UPLOAD_ERR_NO_TMP_DIR:
        echo "找不到临时文件夹。";
        break;
    case UPLOAD_ERR_CANT_WRITE:
        echo "文件写入失败。";
        break;
    default:
        echo "未知错误。";
        break;
}
Salin selepas log masuk

Jika anda ingin mengehadkan jenis fail yang dimuat naik kepada jenis tertentu, anda boleh menggunakan fungsi in_array() untuk membuat pertimbangan. Kodnya adalah seperti berikut:

$allowed_types = array('jpg', 'jpeg', 'gif', 'png');   //允许上传的文件类型
$filename = $_FILES['file']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);   //获取文件类型后缀
if (!in_array($ext, $allowed_types)) {
    echo "不允许上传此类型的文件。";
}
Salin selepas log masuk

5. Ringkasan

Muat naik fail adalah masalah biasa dalam pembangunan web PHP menyediakan pelbagai kaedah dan fungsi untuk mengendalikan muat naik fail. Sebagai tambahan kepada kaedah yang diperkenalkan di atas, kami juga boleh menggunakan perpustakaan kelas PHP untuk pemprosesan muat naik fail, seperti PHP File Uploader (https://www.github.com/verot/class.upload.php) dan FineUploader (https:/ / fineuploader.com/). Tidak kira kaedah yang digunakan, kami perlu memastikan keselamatan dan kesahihan fail yang dimuat naik.

Atas ialah kandungan terperinci Bagaimana untuk mengendalikan muat naik fail dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pemprosesan borang PHP: tetapan semula borang dan pembersihan data Pemprosesan borang PHP: tetapan semula borang dan pembersihan data Aug 07, 2023 pm 03:05 PM

Pemprosesan borang PHP: tetapan semula borang dan pembersihan data Dalam pembangunan web, borang adalah bahagian yang sangat penting dan digunakan untuk mengumpul data yang dimasukkan oleh pengguna. Selepas pengguna menyerahkan borang, kami biasanya memproses data borang dan melakukan beberapa operasi yang diperlukan. Walau bagaimanapun, dalam pembangunan sebenar, kami sering menghadapi situasi di mana kami perlu menetapkan semula borang atau mengosongkan data borang. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan tetapan semula borang dan fungsi pembersihan data, dan menyediakan contoh kod yang sepadan. Set semula borang Pertama, kita perlu memahami konsep set semula borang. apabila pengguna

Pemprosesan borang PHP: pengisihan dan pemeringkatan data borang Pemprosesan borang PHP: pengisihan dan pemeringkatan data borang Aug 09, 2023 pm 06:01 PM

Pemprosesan borang PHP: pengisihan dan pemeringkatan data borang Dalam pembangunan web, borang ialah kaedah input pengguna yang biasa. Selepas kami mengumpul data borang daripada pengguna, kami biasanya perlu memproses dan menganalisis data tersebut. Artikel ini akan memperkenalkan cara menggunakan PHP untuk mengisih dan menyusun data borang untuk memaparkan dan menganalisis data yang diserahkan pengguna dengan lebih baik. 1. Pengisihan data borang Apabila kami mengumpul data borang yang diserahkan oleh pengguna, kami mungkin mendapati bahawa susunan data tidak semestinya memenuhi keperluan kami. Bagi mereka yang perlu dipaparkan atau dibahagikan mengikut peraturan tertentu

Panduan Pemprosesan Borang PHP 7: Cara Mendapatkan Data Borang Menggunakan Tatasusunan $_REQUEST Panduan Pemprosesan Borang PHP 7: Cara Mendapatkan Data Borang Menggunakan Tatasusunan $_REQUEST Aug 01, 2023 pm 10:08 PM

Panduan Pemprosesan Borang PHP7: Cara menggunakan tatasusunan $_REQUEST untuk mendapatkan data borang Gambaran Keseluruhan: Apabila pengguna mengisi borang pada halaman web dan menyerahkannya, kod sebelah pelayan perlu memproses data borang. Dalam PHP7, pembangun boleh mendapatkan data borang dengan mudah menggunakan tatasusunan $_REQUEST. Artikel ini akan memperkenalkan cara menggunakan tatasusunan $_REQUEST dengan betul untuk memproses data borang dan menyediakan beberapa contoh kod untuk membantu pembaca memahami dengan lebih baik. 1. Fahami tatasusunan $_REQUEST: $_REQUES

Memuat Naik dan Memproses Fail dalam Laravel: Mengurus Fail Yang Dimuat Naik Pengguna Memuat Naik dan Memproses Fail dalam Laravel: Mengurus Fail Yang Dimuat Naik Pengguna Aug 13, 2023 pm 06:45 PM

Memuat Naik dan Memproses Fail dalam Laravel: Mengurus Fail Yang Dimuat Naik Pengguna Pengenalan: Muat naik fail ialah keperluan fungsi yang sangat biasa dalam aplikasi web moden. Dalam rangka kerja Laravel, muat naik dan pemprosesan fail menjadi sangat mudah dan cekap. Artikel ini akan memperkenalkan cara mengurus fail yang dimuat naik pengguna dalam Laravel, termasuk pengesahan, penyimpanan, pemprosesan dan paparan muat naik fail. 1. Muat naik fail Muat naik fail merujuk kepada memuat naik fail daripada klien ke pelayan. Dalam Laravel, muat naik fail sangat mudah dikendalikan. pertama,

Pemprosesan borang PHP: eksport dan pencetakan data borang Pemprosesan borang PHP: eksport dan pencetakan data borang Aug 09, 2023 pm 03:48 PM

Pemprosesan borang PHP: eksport dan pencetakan data borang Dalam pembangunan laman web, borang adalah bahagian yang amat diperlukan. Apabila borang di tapak web diisi dan diserahkan oleh pengguna, pembangun perlu memproses data borang. Artikel ini akan memperkenalkan cara menggunakan PHP untuk memproses data borang, dan menunjukkan cara mengeksport data ke fail Excel dan mencetaknya. 1. Penyerahan borang dan pemprosesan asas Pertama, anda perlu mencipta borang HTML untuk pengguna mengisi dan menyerahkan data. Katakan kami mempunyai borang maklum balas ringkas dengan nama, e-mel dan ulasan. HTM

Cara mengendalikan fungsi penyuntingan sebaris dalam borang menggunakan PHP Cara mengendalikan fungsi penyuntingan sebaris dalam borang menggunakan PHP Aug 10, 2023 pm 08:57 PM

Cara menggunakan PHP untuk mengendalikan fungsi penyuntingan sebaris dalam borang Pengenalan: Borang adalah salah satu elemen yang biasa digunakan dalam pembangunan web dan digunakan untuk mengumpul data yang dimasukkan oleh pengguna. Fungsi penyuntingan sebaris membolehkan pengguna mengedit dan menyimpan data dengan serta-merta dalam borang, meningkatkan pengalaman pengguna dan kecekapan operasi. Artikel ini akan memperkenalkan cara menggunakan PHP untuk mengendalikan fungsi penyuntingan sebaris dalam borang, dan melampirkan contoh kod yang sepadan. 1. Bahagian HTML Pertama, kita perlu mencipta borang yang mengandungi fungsi penyuntingan sebaris. Dalam HTML, kita boleh menggunakan kandungan

Bermula dengan pemprosesan fail PHP: panduan langkah demi langkah untuk membaca dan menulis Bermula dengan pemprosesan fail PHP: panduan langkah demi langkah untuk membaca dan menulis Sep 06, 2023 am 09:58 AM

Bermula dengan pemprosesan fail PHP: Panduan langkah demi langkah untuk membaca dan menulis Dalam pembangunan web, pemprosesan fail adalah tugas biasa, sama ada membaca fail yang dimuat naik oleh pengguna atau menulis hasilnya ke fail untuk kegunaan seterusnya Pemprosesan Dokumen PHP adalah sangat penting. Artikel ini akan menyediakan panduan ringkas untuk memperkenalkan langkah asas membaca dan menulis fail dalam PHP, dan melampirkan contoh kod untuk rujukan. Membaca fail dalam PHP, anda boleh menggunakan fungsi fopen() untuk membuka fail dan mengembalikan sumber fail (file

Cara menggunakan pemprosesan borang Vue untuk melaksanakan kawalan melumpuhkan dan mendayakan borang Cara menggunakan pemprosesan borang Vue untuk melaksanakan kawalan melumpuhkan dan mendayakan borang Aug 11, 2023 am 11:45 AM

Cara menggunakan pemprosesan borang Vue untuk melaksanakan kawalan melumpuhkan dan membolehkan borang Dalam pembangunan web, borang adalah salah satu komponen yang sangat diperlukan. Kadangkala, kita perlu mengawal status borang yang dilumpuhkan dan didayakan berdasarkan syarat tertentu. Vue menyediakan cara yang ringkas dan berkesan untuk mengendalikan situasi ini. Artikel ini akan memperkenalkan secara terperinci cara menggunakan Vue untuk melaksanakan kawalan melumpuhkan dan mendayakan borang. Pertama, kita perlu mencipta contoh dan borang asas Vue. Berikut ialah contoh kod HTML dan Vue asas: &lt;divid=&

See all articles