Rumah >pembangunan bahagian belakang >tutorial php >Hantar fail dalam PHP
PHP ialah bahasa skrip sebelah pelayan yang boleh digunakan untuk memproses data borang, menjana halaman dinamik, dsb. Satu senario aplikasi biasa ialah memuat naik fail melalui borang. Artikel ini akan memperkenalkan fungsi muat naik fail dalam PHP, termasuk pemprosesan borang muat naik, penyimpanan fail yang dimuat naik, mengehadkan jenis dan saiz fail yang dimuat naik, dsb.
1. Pemprosesan borang muat naik
Dalam HTML, anda boleh membuat borang melalui teg borang dan menggunakan atribut type="file" dalam teg input untuk membenarkan memuat naik fail. Dalam PHP, anda boleh menggunakan pembolehubah global $_FILES untuk mendapatkan maklumat fail yang dimuat naik.
Andaikan borang kami mengandungi teg input untuk memuat naik fail dan butang hantar:
11b6fd11255bf39aea2e39bb793902ba
e1afba264bef770f92ac9a2c4a571c26
911f4ad4d66a36c39659a323a3785a5a
Terdapat beberapa perkara yang perlu diperhatikan di sini:
Seterusnya, kendalikan permintaan muat naik fail dalam fail upload.php.
2. Penyimpanan fail yang dimuat naik
Pertama, anda perlu menentukan sama ada fail yang dimuat naik itu wujud Jika ia wujud, anda boleh mendapatkan maklumat berkaitan fail yang dimuat naik melalui tatasusunan $_FILES.
if( isset($_FILES["fileToUpload"])) {
$file_name = $_FILES["fileToUpload"]["name"]; $file_tmp = $_FILES["fileToUpload"]["tmp_name"]; $file_size = $_FILES["fileToUpload"]["size"];
}
Antaranya, nama fail boleh diperolehi melalui atribut $name, the saiz fail boleh diperolehi melalui atribut $size, dan laluan fail sementara Boleh diperoleh melalui atribut $tmp_name.
Seterusnya, anda perlu mengalihkan fail yang dimuat naik ke folder sasaran Di sini gunakan fungsi move_uploaded_file():
$target_dir = "uploads/";
$target_file = $target_dir. . basename($file_name);
if(move_uploaded_file($file_tmp, $target_file)) {
echo "The file ". basename($file_name). " has been uploaded.";
} else{
echo "Sorry, there was an error uploading your file.";
}
Dalam kod di atas , $target_dir ialah direktori storan bagi fail yang dimuat naik, di mana fungsi basename() digunakan untuk mendapatkan nama fail. Memindahkan fail menggunakan fungsi move_uploaded_file(), di mana parameter pertama ialah laluan sementara fail dan parameter kedua ialah laluan sasaran. Jika fail berjaya dialihkan, mesej muat naik yang berjaya dikembalikan kepada pengguna jika tidak, mesej muat naik yang gagal dikembalikan.
3. Hadkan jenis dan saiz fail yang dimuat naik
Untuk memastikan keselamatan dan prestasi sistem muat naik, kami perlu mengehadkan fail yang dimuat naik. Ini termasuk kedua-dua jenis fail dan saiz fail.
Kami menggunakan fungsi in_array() PHP untuk menentukan sama ada jenis fail yang dimuat naik adalah sah. Secara khusus, anda perlu menentukan tatasusunan jenis fail yang dibenarkan untuk dimuat naik, dan kemudian gunakan fungsi in_array() untuk menentukan sama ada jenis fail yang dimuat naik berada dalam tatasusunan jenis fail yang dibenarkan untuk dimuat naik.
$allowed_types = array('jpg', 'jpeg', 'png', 'gif');
$file_type = strtolower(pathinfo($file_name,PATHINFO_EXTENSION));
if( in_array($file_type, $allowed_types)){
// 合法文件类型
} else{
echo "Sorry, only JPG, JPEG, PNG, GIF files are allowed.";
}
Dalam kod di atas, fungsi pathinfo() digunakan untuk mendapatkan fail nama akhiran , fungsi strtolower() menukarnya kepada aksara kecil dan fungsi in_array() menentukan sama ada ia berada dalam tatasusunan jenis fail yang dibenarkan untuk dimuat naik.
Kami menggunakan konfigurasi muat naik fail PHP untuk mengehadkan saiz fail yang dimuat naik, yang boleh ditetapkan dalam fail php.ini, contohnya:
post_max_size=8M
upload_max_filesize=2M
post_max_size di sini mewakili panjang maksimum data POST dan upload_max_filesize mewakili saiz maksimum fail yang dimuat naik. Perlu diingat bahawa jika saiz fail tidak memenuhi had, tatasusunan $_FILES tidak akan mengandungi maklumat tentang fail yang dimuat naik.
Ringkasan:
Melaksanakan fungsi muat naik fail dalam PHP memerlukan langkah berikut:
Melaksanakan fungsi muat naik fail melalui kaedah di atas boleh menyediakan aplikasi web kami dengan fungsi yang lebih kaya dan pengalaman pengguna yang lebih baik.
Atas ialah kandungan terperinci Hantar fail dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!