Rumah >pembangunan bahagian belakang >masalah PHP >Pasang maklumat fail sambungan php

Pasang maklumat fail sambungan php

WBOY
WBOYasal
2023-05-24 17:23:372536semak imbas

Dengan perkembangan beransur-ansur dan mempopularkan teknologi Internet, aplikasi berasaskan Web semakin dibina menggunakan bahasa dinamik (seperti PHP). Dalam PHP, muat naik fail adalah operasi yang sangat biasa. Walau bagaimanapun, disebabkan oleh pelbagai jenis jenis fail, dalam banyak kes kita perlu melakukan jenis pengesahan atau pemprosesan tertentu pada fail yang dimuat naik, yang memerlukan penggunaan alat pengenalan jenis fail berkuasa yang disediakan oleh PHP - sambungan info fail.

Apakah sambungan info fail?

Pelanjutan info fail ialah sambungan yang disertakan dengan PHP Ia boleh mengenal pasti jenis fail fail yang dimuat naik untuk menentukan jenis MIME atau sambungan failnya. Selepas PHP 5.3.0, sambungan info fail telah ditambahkan pada modul teras, jadi ia telah menjadi ciri standard PHP dalam versi PHP yang lebih baharu.

Cara memasang sambungan info fail

Untuk PHP pada sistem Windows, sambungan info fail sudah disertakan dalam pakej pengedaran binari, jadi tidak perlu memasangnya. Tetapi untuk sistem pengendalian seperti Linux, sambungan info fail perlu dipasang secara berasingan.

Mengambil sistem CentOS sebagai contoh, anda boleh memasangnya melalui arahan yum:

yum install php-pecl-fileinfo

Selepas pemasangan selesai, anda perlu mendayakan sambungan info fail dalam fail konfigurasi php.ini . Cari dua baris konfigurasi berikut dalam fail php.ini:

;extension=php_fileinfo.dll  //Windows下
;extension=fileinfo.so      //Linux下

Alih keluar koma bertitik di hadapan dua baris ini untuk mendayakan sambungan info fail. Kemudian, mulakan semula pelayan web atau kumpulan proses PHP-FPM.

Selepas mendayakan sambungan info fail, anda boleh menggunakan fungsi info fail dalam kod PHP untuk memproses fail yang dimuat naik.

Menggunakan sambungan info fail

Menggunakan sambungan info fail memerlukan panggilan fungsi info fail terbina dalam PHP. Fungsi fileinfo mempunyai dua kaedah utama: finfo_open() dan finfo_file().

Kaedah finfo_open() digunakan untuk mencipta objek fileinfo Parameter boleh menentukan jenis perpustakaan pengesanan jenis fail (nilai pilihan adalah FILEINFO_MIME, FILEINFO_MIME_TYPE, FILEINFO_MIME_ENCODING, FILEINFO_SYMLINK, FILEINFO_SYMLINK, FILEINFOLEIN, FILEINFOLEIN. FILEINFO_NONE, dsb.), dan beberapa Tetapan lain (seperti pengekodan penukaran, dsb.). Kaedah

finfo_file() digunakan untuk melaksanakan pengesanan jenis pada fail yang ditentukan dan mengembalikan maklumat seperti jenis MIME atau sambungan fail fail.

Berikut ialah coretan kod PHP mudah untuk menunjukkan cara menggunakan sambungan info fail untuk memproses fail yang dimuat naik:

<?php
// 创建fileinfo对象
$finfo = finfo_open(FILEINFO_MIME_TYPE);

// 读取上传文件类型
$mime_type = finfo_file($finfo, $_FILES['file_upload']['tmp_name']);

// 关闭fileinfo对象
finfo_close($finfo);

if ($mime_type == 'image/jpeg' || $mime_type == 'image/png') {
    // 处理上传图片
} else {
    // 显示错误信息
    echo "上传的文件类型不支持!";
}
?>

Dalam kod di atas, kami memanggil kaedah fifo_open() untuk mencipta A fileinfo objek, dan menentukan jenis perpustakaan pengesanan jenis fail sebagai FILEINFO_MIME_TYPE (iaitu, mengesan jenis MIME fail). Kemudian, gunakan kaedah fifo_file() untuk membaca jenis MIME fail yang dimuat naik dan simpannya dalam pembolehubah $mime_type. Akhir sekali, fail yang dimuat naik diproses secara berbeza berdasarkan nilai $mime_type.

Ringkasan

Dalam pembangunan aplikasi web, muat naik fail adalah operasi biasa. Pengesahan dan pemprosesan yang betul bagi fail yang dimuat naik adalah bahagian penting dalam memastikan keselamatan dan keteguhan aplikasi web. Dengan menggunakan sambungan info fail yang disediakan oleh PHP, kami boleh mengesan jenis MIME fail yang dimuat naik dan mendapatkan maklumat asas lain tentang fail untuk pemprosesan seterusnya yang lebih baik.

Atas ialah kandungan terperinci Pasang maklumat fail sambungan php. 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